RDM/2 The Russian Electronic Developer Magazine  
RDM/2 Русский электронный журнал разработчика  
ДомойОт редактораПишите намОбратная связьRU/2

Компилятор Ресурсов для OS/2

Этот неофициальный перевод выполнен для собственных нужд по тексту документации, входящей в состав OS/2 Toolkit.

Если этот текст случайно попал к вам, то вы должны помнить, что все права принадлежат компании IBM Corporation.
Сообщения об обнаруженных ошибках и неточностях перевода будут с благодарностью приняты переводчиком.


Содержание


Введение

Компилятор ресурсов (RC) для OS/2 - это инструмент разработки, который позволяет добавлять в исполняемые файлы приложения такие ресурсы, как строки сообщений, указатели, меню и шаблоны диалогов. Компилятор ресурсов предназначен, прежде всего, для подготовки данных для приложений OS/2, использующих функции WinLoadString, WinLoadPointer, WinLoadMenu и WinLoadDlg. Эти функции загружают ресурсы из исполняемого файла приложения (*.EXE) или из соответствующих библиотек динамической линковки (*.DLL). Приложение может использовать загруженные ресурсы как угодно.

Использование функций загрузки ресурсов и компилятора ресурсов позволяет разработчику быстро создавать и/или модифицировать ресурсы приложения без перекомпиляции самого приложения. Т.е. RC может модифицировать ресурсы в исполняемых файлах приложений, не затрагивая собственно исполняемый код. Это свойство позволяет создавать приложения под конкретного пользователя, используя те же самые исполняемые файлы - достаточно с помощью RC добавить пользовательские ресурсы в каждое приложение.

Компилятор ресурсов особенно важен при создании многоязычных приложений, поскольку позволяет определить все зависящие от языка данные, такие как строки сообщений, в виде ресурсов. Подготовка приложения для нового языка сводится к переводу ресурсов на этот язык и добавлению их к существующему исполняемому файлу.

Замечание: Во время работы RC использует файлы RCPP.EXE и RCPP.ERR. Убедитесь, что эти файлы находятся в текущем каталоге или в одном из каталогов, перечисленных в переменной окружения PATH. RC создает много временных файлов и записывает их в каталог, заданный в переменной окружения TMP или TEMP. Если RC не может записать временные файлы в этот каталог, то для их размещения используется текущий каталог.

>>> Назад к оглавлению.


Командная строка

Синтаксис:

   rc [<опции>] <исходный файл> [<результирующий файл>]

опции
задают дополнительные параметры компиляции:

-d <имя макропеременной>[=<значение>]
-D<имя макропеременной>[=<значение>]
задать макропеременную для препроцессора.

Опция -d используется для передачи флагов условной компиляции препроцессору.

имя макропеременной
последовательность букв, цифр и символов подчеркивания. Имя не должно начинаться с цифры.
значение
последовательность символов, которая будет подставляться вместо имени макропеременной во время обработки исходного файла препроцессором.

Если фраза =<значение> пропущена, то макропеременной будет присвоено значение 1.
Например, использование опции -D_3d эквивалентно включению в начало исходного файла строки:

   #define  _3d   1
Опцию -d можно использовать до восьми раз для задания различных макропеременных из командной строки.

-i <путь>
задать дополнительный путь поиска файлов.

Опция -i задает дополнительные пути для поиска файлов, включаемых в исходный файл.
Поле путь определяет путь к любому существующему каталогу, в котором RC будет искать файлы, подключаемые препроцессором по директиве #include. Путь не должен содержать пробелов.
Чтобы задать несколько дополнительных путей поиска, надо использовать опцию -i для каждого из них. Препроцессор просматривает каталоги, заданные в командной строке опцией -i, раньше каталогов, определенных в переменной окружения INCLUDE.

-r
создать файл .RES.

Если задана опция -r, то RC ограничивается созданием в текущем каталоге двоичного файла, содержащего откомпилированные ресурсы. Ресурсы не присоединяются к исполняемому файлу.

Созданный двоичный файл ресурсов будет иметь расширение .RES.

-p
Pack386 - позиционировать ресурсы так, чтобы они не пересекали границы сегментов 64K

Опция -p используется только в тех случаях, когда ресурсы присоединяются к исполняемому файлу.

-x[{1|2}]
Exepack - сжать ресурсы, используя метод 1 или 2.

Опция -x используется только в тех случаях, когда ресурсы присоединяются к исполняемому файлу. Присоединяемые ресурсы упаковываются и будут автоматически распаковываться во время доступа.

Опция -x1 задает использование алгоритма упаковки, совместимого с OS/2 v2.0, v2.1 и v2.11.

Опция -x2 использует алгоритм упаковки, несовместимый с OS/2 v2.0, v2.1 и v2.11, и создает исполняемые файлы меньшего размера, что позволяет ускорить доступ к ресурсам.

Опция -x (без параметров) аналогична опции -x1.

-k <кодовая страница>|<начало,конец,...>
-cp <кодовая страница>|<начало,конец,...>
кодовая страница DBCS или информация в виде последовательности пар лидирующих байтов DBCS.

Опция -k (или -cp) используется для задания информации кодовой страницы компилируемого скрипт-файла ресурсов.
Поле кодовая страница содержит номер кодовой страницы:

Кодовая страница
Код страны
932
81
934
82
936
86
938
88

Вместо указания кодовой страницы можно задать последовательность пар лидирующих байтов DBCS. Каждая пара чисел определяет нижнюю и верхнюю границу кодов, которые будут интерпретироваться как лидирующие байты DBCS.

Каждой кодовой странице должен соответствовать правильный код страны: либо по умолчанию, либо задаваемый опцией -сс.

-cc <код страны>
код страны.

-h
выдать подсказку по параметрам командной строки.

Если в командной строке задана опция -h, то компилятор ресурсов игнорирует остальные параметры и выводит на экран информацию о параметрах командной строки и используемых переменных окружения. При этом не выполняется никаких действий над входными и выходными файлами. Использование этой опции идентично заданию команды "RC" без параметров.

Примерная информация помощи, выдаваемая на экран:

 Usage:  rc [<options>] <.RC input file> [<.EXE output file>]
         -d defname      - Preprocessor define
         -Ddefname       - Preprocessor define
         -i              - Include file path
         -r              - Create .res file
         -p              - Pack - 386 resources will not cross 64K boundaries
         -x[1|2]         - Exepack - Compress resources, using method 1 or 2
         -cc cc          - Country code
         -cp cp | lb,tb,...      - DBCS codepage or lead/trail byte info.
         -h              - Access Help
 Environment variables:
         DBCS=cp | lb,tb,...
         TMP=temporary file path
         TEMP=temporary file path
         INCLUDE=include file path

В опциях -cc, -d, -i и -k аргументы должны отделяться пробелом от названий опций. В названиях опций можно использовать символы как нижнего, так и верхнего регистров.

исходный файл
имя текстового файла, содержащего описание ресурсов (скрипт-файл .RC), или имя двоичного файла (.RES) с заранее откомпилированными ресурсами.

результирующий файл
имя исполняемого (.EXE или .DLL) файла, в который будут добавлены ресурсы, или имя двоичного файла (.RES), в который будут помещены результаты компиляции.
Более подробно особенности использования описаны в главе Применение.

>>> Назад к оглавлению.


Переменные окружения

Компилятор ресурсов использует следующие переменные окружения:
DBCS=<кодовая страница>|<начало,конец,...>
кодовая страница DBCS или информация в виде последовательности пар лидирующих байтов DBCS (аналогично опции командной строки -k).

TMP=<путь>
TEMP=<путь>
путь к каталогу для размещения временных файлов. Если RC не может записать свои временные файлы в указанные каталоги, то использует для этих целей текущий каталог.

INCLUDE=<путь>
дополнительный путь поиска файлов (аналогично опции командной строки -i). Если задаются несколько путей поиска, то они перечисляются через символ ";".

Переменные окружения обычно задаются командой SET в файле CONFIG.SYS.

>>> Назад к оглавлению.


Применение

Компилятор ресурсов (RC) компилирует исходные скрипт-файлы ресурсов и создает новый файл, называемый двоичным файлом ресурсов.

Двоичный файл ресурсов может быть добавлен в исполнительный файл приложения, заменяя любые существующие ресурсы в этом файле.

Используя компилятор ресурсов, можно выполнить одно из трех действий:

скрипт-файл ресурсов
имя текстового файла, содержащего описание ресурсов. Если файл находится не в текущем каталоге, то следует указать полный путь к нему. Если не указано расширение файла, то по умолчанию ищется файл с расширением .RC.

исполняемый файл
имя исполняемого файла (EXE или DLL), в который будут добавлены ресурсы. Если файл находится не в текущем каталоге, то следует указать полный путь к нему. Если не указано расширение файла, то ищется файл с расширением .EXE. Если имя исполняемого файла пропущено, то ищется файл с тем же самым именем, что и у файла ресурсов (текстового или двоичного), и расширением .EXE. Если исполняемый файл не найден, то RC завершает работу с сообщением об ошибке.

-r
RC не добавляет ресурсы в исполняемый файл, а создает отдельный двоичный файл ресурсов. Эту опцию можно использовать для того, чтобы заранее подготовить откомпилированные ресурсы, а добавить их в исполняемый файл позднее. Если вместе с опцией -r не указано отдельное имя двоичного файла ресурсов, то создается файл с тем же самым именем, что и у текстового скрипт-файла ресурсов, но с расширением .RES.

двоичный файл ресурсов
имя двоичного файла ресурсов, который будет позднее добавлен к исполняемому файлу. Если файл не существует, то RC создает его; существующий файл заменяется. Если файл должен находиться не в текущем каталоге, то следует указать полный путь к нему. Двоичный файл ресурсов должен иметь расширение .RES.
Например, чтобы откомпилировать скрипт-файл ресурсов EXAMPLE.RC и добавить ресурсы в исполняемый файл EXAMPLE.EXE, достаточно выполнить команду:

   rc example

В этом случае нет необходимости указывать расширение скрипт-файла ресурсов и имя исполняемого файла. RC откомпилирует файл EXAMPLE.RC, создаст файл EXAMPLE.RES и добавит его в файл EXAMPLE.EXE.

Для того, чтобы откомпилировать скрипт-файл ресурсов EXAMPLE.RC в отдельный двоичный файл EXAMPLE.RES, надо выполнить команду:

   rc -r example

Компилятор только создаст двоичный файл ресурсов EXAMPLE.RES и не будет его никуда добавлять.

Чтобы создать двоичный файл ресурсов с другим именем (например, NEWFILE.RES), надо выполнить команду:

   rc -r example newfile.res

Для добавления двоичного файла ресурсов к исполняемому файлу с тем же именем, надо выполнить команду:

   rc example.res

Чтобы добавить двоичный файл ресурсов к исполняемому файлу с другим именем (например, NEWFILE.EXE), надо выполнить команду:

   rc example.res newfile.exe

Для добавления откомпилированных ресурсов к библиотеке динамической линковки (DLL), надо выполнить команду:

   rc example.res dynalink.dll

>>> Назад к оглавлению.


Скрипт-файл ресурсов

Скрипт-файлом ресурсов называется обычный текстовый файл, содержащий описание ресурсов. Имена скрипт-файлов ресурсов обычно имеют расширение .RC. Это расширение принято для скрипт-файлов ресурсов по умолчанию. Рекомендуется использовать его для всех скрипт-файлов ресурсов.

Замечание: Хотя в скрипт-файлах ресурсов используется C-подобный синтаксис, компилятор ресурсов все-таки не компилятор C. Можно использовать только операторы компилятора ресурсов.

Создавать и редактировать скрипт-файлы ресурсов можно с помощью обычного текстового редактора. Для описания ресурсов используются операторы ресурсов. Для управления процессом компиляции используются специальные операторы, называемые директивами.

Директивы.

Директивы всегда начинаются с зарезервированного символа #, затем следует ключевое слово (название директивы), а за ним любые дополнительные числа, символьные строки и имена файлов.

Например, следующая директива включает в процесс обработки скрипт-файла ресурсов файл заголовков OS2.H:

   #include <os2.h>

Директивы также позволяют определять макропеременные и управлять процессом компиляции с помощью операторов условной компиляции.

Операторы ресурсов.

Скрипт-файл может содержать один или несколько операторов, задающих тип, идентификатор и данные для каждого ресурса. Например, следующий многострочный оператор определяет меню, используемое приложением:

   MENU 1
   BEGIN
      MENUITEM "Alpha", 101
      MENUITEM "Beta", 102
   END

Поскольку некоторые ресурсы могут содержать двоичные данные, которые не могут быть созданы с помощью текстового редактора, то многие операторы позволяют задать имя дополнительного файла, который будет включен в ресурсы в процессе компиляции.

Например, следующий оператор описывает иконку и соответствующий файл MYICON.ICO, содержащий растровое изображение иконки:

   ICON 1 myicon.ico

Каждый оператор ресурсов состоит из комбинации одного или более ключевых слов, чисел, символьных строк и имен файлов, определяющих тип ресурса, идентификатор и данные.

Ключевые слова - это слова, имеющие специальное значение в понимании компилятора ресурсов. В операторах ключевые слова определяют тип ресурса, опции памяти и загрузки, начинают и заканчивают блоки операторов. Ключевые слова можно использовать только в том виде, как они определены синтаксисом оператора.

Ключевые слова операторов, в отличие директив, могут состоять из любой комбинации символов верхнего и нижнего регистров. Отметим, что символы фигурных скобок (т.е. { и }) относятся к числу зарезервированных символов. Их можно использовать вместо ключевых слов BEGIN и END.

Числа - всегда целые и представляют координаты, размеры, стили и другие числовые данные. Можно записывать числа как в десятичном, так и шестнадцатиричном или в восьмеричном форматах.

Десятичные числа должны содержать только цифры, но могут начинаться со знака "-" (минус) для представления отрицательных значений. Шестнадцатиричные числа должны содержать шестнадцатиричные цифры (в верхнем или нижнем регистрах) и должны начинаться с символов 0x. Восьмеричные числа должны содержать только цифры (от 0 до 7) и должны начинаться с символов 0o.

Следующий пример демонстрирует представление чисел в различных форматах:

DECIMAL
OCTAL
HEXADECIMAL
1
0o1
0x1
10
0o12
0xA
255
0o377
0xFF
-1
0o177777
0xFFFF
65535
0o177777
0xFFFF

В операторах, создающих элементы управления в диалоговых окнах и пункты меню в меню, необходимо присвоить идентификатор каждому элементу управления и пункту меню. Кроме того, в операторах, создающих элементы управления в диалоговых окнах, обязательно требуется определить координаты и размеры этих элементов. Идентификаторы, координаты и размеры задаются целыми числами от 0 до 65535 (или от -32728 до 32727). Также можно использовать простые выражения, результат вычисления которых должен представляться целым числом в указанных границах. Выражения удобно использовать, например, для относительной нумерации элементов управления диалога или меню.

Координаты и размеры задаются в некоторых ресурсных единицах. Конкретный размер этой единицы в пикселах определяется видеодрайвером, исходя из текущего разрешения экрана.

Имена, метки, заголовки и сообщения представляются символьными строками. Символьные строки состоят из последовательности символов (коды от 1 до 255), заключенных в двойные кавычки ("). Если строка должна содержать символ двойных кавычек, то его надо записать дважды. Смысл каждого кода (т.е. какой символ отображает тот или иной код) зависит от кодовой страницы (набора символов), назначенной для скрипт-файла.

Компилятор ресурсов интерпретирует символ обратного слэша (\) как управляющий символ. В строку можно включить любой символ ASCII-таблицы, если записать его как \xHH, где HH - шестнадцатиричное представление символа, или как \nnn, где nnn - восьмеричное представление. Если строка должна содержать символ обратного слэша, то его надо записать дважды.

Некоторые управляющие символы также особым образом интерпретируются загрузчиком ресурсов:

Константы (или макропеременные) - это имена, которым директивой #define назначены некоторые значения. Значения могут быть числами, символьными строками или другими данными. Большинство операторов ресурсов в скрипт-файле использует константы и наиболее используемые константы определены файлах заголовков OS/2 (например, os.h). По этой причине необходимо всегда включать файл заголовков OS2.H в скрипт-файл директивой #include.

Имена файлов - это имена файлов OS/2. Если указанный файл не находится в текущем каталоге, то требуется указать полный путь к файлу.

Операторы ресурсов имеют три основные формы:

Однострочные операторы содержат ключевое слово, идентифицирующее тип ресурса, константу или число, обозначающую идентификатор ресурса и имя файла, содержащего данные ресурса. Например, этот оператор ICON определяет ресурс иконки:

   ICON 1 myicon.ico

Ресурс иконки будет иметь идентификатор 1. Файл MYICON.ICO содержит данные - растровое изображение иконки.

Многострочные операторы содержат ключевое слово, идентифицирующее тип ресурса, константу или число, обозначающую идентификатор ресурса и дополнительные операторы ресурсов, определяющие данные ресурса, между ключевыми словами BEGIN и END (блок операторов). Например, этот оператор MENU определяет ресурс меню:

   MENU 1
   BEGIN
      MENUITEM "Alpha", 101
      MENUITEM "Beta", 102
   END

Ресурс меню будет иметь идентификатор 1. Меню содержит два оператора MENUITEM, определяющих пункты меню с идентификаторами 101 и 102.

В многострочных операторах, таких как DLGTEMPLATE и WINDOWTEMPLATE, RC позволяет организовать любую структуру вложенности блоков операторов. Например, операторы DLGTEMPLATE и WINDOWTEMPLATE обычно содержат один оператор DIALOG или FRAME. Эти операторы могут содержать любое число операторов WINDOW и CONTROL; эти операторы опять же могут содержать дополнительные операторы WINDOW и CONTROL и т.д. Вложенные операторы позволяют определить элементы управления и другие дочерние окна для диалогов и окон. Если вложенный оператор создает дочернее окно или элемент управления, то родителем и собственником нового окна назначается окно, создаваемое оператором, содержащим этот вложенный оператор (операторы FRAME позволяют создать элементы управления, родители и собственники которых различны).

>>> Назад к оглавлению.


Двоичный файл ресурсов

Двоичный файл ресурсов, создаваемый компилятором ресурсов, содержит откомпилированные ресурсы в следующих структурах:

   struct {
      UCHAR  fResType;
      USHORT usResType;
      UCHAR  fResID;
      USHORT resid;
      USHORT fsOptions;
      ULONG  cb;
      BYTE   bytes[1];
   };

fResType
вид идентификатора типа ресурса - строка или целое. Для OS/2 идентификаторы типов ресурсов всегда целые и это поле всегда имеет значение 0xFF.

usResType
идентификатор типа ресурса. Целое от 0 до 65535.

Предопределены следующие типы ресурсов:

RT_ACCELTABLE
таблица ключей-акселераторов
RT_BITMAP
растровое изображение (bitmap)
RT_CHARTBL
таблица символов
RT_DIALOG
шаблон диалога
RT_DISPLAYINFO
информация отображения
RT_DLGINCLUDE
имя подключаемого файла диалога
RT_FKALONG
область функциональных клавиш (длинная форма)
RT_FKASHORT
область функциональных клавиш (короткая форма)
RT_FONT
фонт
RT_FONTDIR
каталог с фонтами
RT_HELPSUBTABLE
подтаблица помощи
RT_HELPTABLE
таблица помощи
RT_KEYTBL
таблица клавиш
RT_MENU
шаблон меню
RT_MESSAGE
таблица сообщений
RT_POINTER
изображение указателя мыши или иконка
RT_RCDATA
двоичные данные
RT_STRING
таблица строк
RT_VKEYTBL
таблица виртуальных клавиш

fResID
вид идентификатора ресурса - строка или целое. Для OS/2 идентификаторы ресурсов всегда целые и это поле всегда имеет значение 0xFF.

resid
идентификатор ресурса. Целое от 0 до 65535.

fsOptions
опции загрузки и размещения в памяти.

Возможны комбинации следующих значений:

0x0010
MOVEABLE (если нет, то FIXED)
0x0040
PRELOAD (если нет, то LOADONCALL)
0x1000
DISCARDABLE

cb
размер содержимого ресурса (в байтах)

bytes
содержимое ресурса

>>> Назад к оглавлению.


Директивы

>>> Назад к оглавлению.

#define

Синтаксис:

   #define <имя> [<значение>]

Описание:

Директива #define позволяет определить имя макропеременной и присвоить ей некоторое значение. Все последующие вхождения имени этой макропеременной в тексте будут заменены на указанное значение.

имя
имя макропеременной. Может состоять из любой комбинации букв, цифр и знаков препинания.

значение
любое число, символьная строка или строка текста. В качестве значения может использоваться выражение, которое может содержать имена других макропеременных. Возможны 64 уровня вложенных определений. Если значение опущено, то макропеременной присваивается значение 1.

Пример:

   #define    NONZERO      1
   #define    USERCLASS    "MyControlClass"
   #define    MY_EXIT      WM_USER+1

Макропеременной NONZERO будет присвоено значение 1, USERCLASS - строка "MyControlClass", а MY_EXIT - числовое значение на 1 большее значения макропеременной WM_USER.

>>> Назад к оглавлению.


#elif

Синтаксис:

   #elif <константное выражение>

Описание:

Директива #elif отмечает пункт дополнительной проверки в блоке условной компиляции, который был начат директивами #if, #ifdef или #ifndef. Директива получает управление, если не было выполнено условие ни в одном из предыдущих пунктов проверки. Директива управляет условной компиляцией скрипт-файла ресурсов, проверяя условие, заданное в выражении.

Если значение выражения не равно 0, то все операторы до следующей встреченной директивы #endif, #elif или #else будут обрабатываться компилятором ресурсов. Если следующей встреченной директивой были #elif или #else, то все остальные операторы от этих директив до первой встреченной директивы #endif будут исключены из обработки.

Если значение выражения равно 0, то все операторы до следующей встреченной директивы #endif, #elif или #else будут будут исключены из обработки и управление будет передано этой следующей директиве.

В блоке условной компиляции можно использовать любое количество директив #elif.

константное выражение
проверяемое условие. Это может быть имя макропеременной, целое число или выражение, содержащее макропеременные, целые числа, арифметические операции и операции сравнения.

Пример:

   #if VERSION < 3
   BITMAP 1 errbox.bmp
   #elif VERSION < 7
   BITMAP 1 userbox.bmp
   #else
   BITMAP 1 newbox.bmp
   #endif

Если значение макропеременной VERSION меньше 3, то в качестве ресурса растрового изображения будет использоваться файл ERRBOX.BMP. Иначе, но только если значение макропеременной VERSION меньше 7 (т.е. больше или равно 3 и меньше 7), будет использоваться файл USERBOX.BMP. Во всех остальных случаях будет использован файл NEWBOX.BMP.

>>> Назад к оглавлению.


#else

Синтаксис:

   #else

Описание:

Директива #else отмечает альтернативный пункт в блоке условной компиляции, который был начат директивами #if, #ifdef или #ifndef. Она должна быть последней директивой перед соответствующей директивой #endif, закрывающей текущий блок условной компиляции, и получает управление только в том случае, если не было выполнено условие ни в одном из предыдущих пунктов проверки.

Пример:

   #ifdef DEBUG
   BITMAP 1 errbox.bmp
   #else
   BITMAP 1 userbox.bmp
   #endif

Если макропеременная DEBUG определена, то в качестве ресурса растрового изображения будет использоваться файл ERRBOX.BMP. Иначе будет использоваться файл USERBOX.BMP.

>>> Назад к оглавлению.


#endif

Синтаксис:

   #endif

Описание:

Директива #endif завершает блок условной компиляции, который был начат директивами #if, #ifdef или #ifndef. Каждый блок условной компиляции, начатый директивами #if, #ifdef или #ifndef, должен быть завершен директивой #endif.

Пример:

   #ifdef DEBUG
   BITMAP 1 errbox.bmp
   #endif

Если макропеременная DEBUG определена, то в качестве ресурса растрового изображения будет использоваться файл ERRBOX.BMP.

>>> Назад к оглавлению.


#if

Синтаксис:

   #if <константное выражение>

Описание:

Директива #if начинает блок условной компиляции. Директива управляет условной компиляцией скрипт-файла ресурсов, проверяя условие, заданное в выражении.

Если значение выражения не равно 0, то все операторы до следующей встреченной директивы #endif, #elif или #else будут обрабатываться компилятором ресурсов. Если следующей встреченной директивой были #elif или #else, то все остальные операторы от этих директив до первой встреченной директивы #endif будут исключены из обработки.

Если значение выражения равно 0, то все операторы до следующей встреченной директивы #endif, #elif или #else будут будут исключены из обработки и управление будет передано этой следующей директиве.

константное выражение
проверяемое условие. Это может быть имя макропеременной, целое число или выражение, содержащее макропеременные, целые числа, арифметические операции и операции сравнения.

Пример:

   #if VERSION < 3
   BITMAP 1 errbox.bmp
   #endif

Если значение макропеременной VERSION меньше 3, то в качестве ресурса растрового изображения будет использоваться файл ERRBOX.BMP.

>>> Назад к оглавлению.


#ifdef

Синтаксис:

   #ifdef <имя>

Описание:

Директива #ifdef начинает блок условной компиляции. Директива управляет условной компиляцией скрипт-файла ресурсов, проверяя определена или нет указанная макропеременная. Макропеременная может быть определена с помощью директивы #define и из командной строки компилятора ресурсов с помощью опции -d.

Если проверяемая макропеременная определена, то все операторы до следующей встреченной директивы #endif, #elif или #else будут обрабатываться компилятором ресурсов. Если следующей встреченной директивой были #elif или #else, то все остальные операторы от этих директив до первой встреченной директивы #endif будут исключены из обработки.

Если проверяемая макропеременная не определена, то все операторы до следующей встреченной директивы #endif, #elif или #else будут будут исключены из обработки и управление будет передано этой следующей директиве.

имя
имя макропеременной. Может состоять из любой комбинации букв, цифр и знаков препинания.

Пример:

   #ifdef DEBUG
   BITMAP 1 errbox.bmp
   #endif

Если макропеременная DEBUG определена, то в качестве ресурса растрового изображения будет использоваться файл ERRBOX.BMP.

>>> Назад к оглавлению.


#ifndef

Синтаксис:

   #ifndef <имя>

Описание:

Директива #ifndef начинает блок условной компиляции. Директива управляет условной компиляцией скрипт-файла ресурсов, проверяя определена или нет указанная макропеременная.

Если проверяемая макропеременная еще не определена ни с помощью директивы #define, ни из командной строки компилятора ресурсов с помощью опции -d, или ее определение удалено с помощью директивы #undef, то все операторы до следующей встреченной директивы #endif, #elif или #else будут обрабатываться компилятором ресурсов. Если следующей встреченной директивой были #elif или #else, то все остальные операторы от этих директив до первой встреченной директивы #endif будут исключены из обработки.

Если проверяемая макропеременная определена, то все операторы до следующей встреченной директивы #endif, #elif или #else будут будут исключены из обработки и управление будет передано этой следующей директиве.

имя
имя макропеременной. Может состоять из любой комбинации букв, цифр и знаков препинания.

Пример:

   #ifndef DEBUG
   BITMAP 1 errbox.bmp
   #endif

Если макропеременная DEBUG не определена, то в качестве ресурса растрового изображения будет использоваться файл ERRBOX.BMP.

>>> Назад к оглавлению.


#include

Синтаксис:

   #include <файл>

Описание:

Директива #include позволяет RC включить в обработку указанный файл заголовков. Файл заголовков обычно содержит определения макропеременных (констант), используемых в скрипт-файле ресурсов. В файле заголовков обрабатываются только директивы #define; все другие операторы игнорируются.

файл
имя файла заголовков в формате OS/2. Это должна быть строка, заключенная в двойные кавычки ("), если файл находится в текущем каталоге, или в угловые скобки (<>), если файл находится в одном из каталогов, перечисленных в переменной окружения INCLUDE. В остальных случаях необходимо указать имя файла с полным путем и заключить его в двойные кавычки (").

Имя файла рассматривается как строка C. Т.е. в полном пути необходимо использовать два обратных слэша вместо одного. С другой стороны, можно использовать один символ прямого слэша (/) вместо двух обратных.

Пример:

   #include <os2.h>
   #include "headers\\mydefs.h"

В качестве файлов заголовков используются файлы OS2.H (расположен в одном из каталогов, перечисленных в INCLUDE) и файл MYDEFS.H, расположенный в подкаталоге HEADERS текущего каталога.

>>> Назад к оглавлению.


#undef

Синтаксис:

   #undef <имя>

Описание:

Директива #undef удаляет текущие определения указанных макропеременных. При обработке последующего текста подстановки выполняться не будут.

имя
имя макропеременной. Может состоять из любой комбинации букв, цифр и знаков препинания.

Пример:

   #undef NONZERO
   #undef USERCLASS

Удаляются определения констант NONZERO и USERCLASS.

>>> Назад к оглавлению.


Операторы

>>> Назад к оглавлению.

ACCELTABLE

Синтаксис:

   ACCELTABLE <идентификатор> [<опции памяти>] [<кодовая страница>]
   BEGIN
      <ключ>, <команда>[, <опции акселератора>]
      .
      .
      .
   END


Описание:

Оператор ACCELTABLE создает таблицу акселераторов для приложения. Акселератор - это клавиша (или комбинация клавиш), которая позволяет пользователю быстро выполнить какие-либо действия. Например, можно назначить клавишу F3 пункту "Выход" меню "Файл" и тогда для выбора этого пункта меню будет достаточно нажать клавишу F3. Таблица акселераторов может быть загружена из исполняемого файла в любое время, когда потребуется, функцией WinLoadAccelTable.

В скрипт-файле можно определить любое количество операторов ACCELTABLE. Каждый оператор должен иметь уникальный идентификатор. В каждой таблице акселераторов можно определить любое число акселераторов; с другой стороны, в одной и той же таблице не может находиться два определения одной и той же клавиши.

Каждое определение акселератора должно содержать значение ключа и команду. Функция WinSetAccelTable, используемая в приложении, преобразует нажатия на клавиши-акселераторы в идентификаторы команд в сообщениях WM_COMMAND, WM_HELP или WM_SYSCOMMAND. Тип сообщения зависит от значения поля опции акселератора.

идентификатор
идентификатор таблицы акселераторов.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.
Каждая таблица акселераторов в скрипт-файле ресурсов должна иметь уникальный идентификатор.

опции памяти
управляют размещением ресурса в памяти.

FIXED
система размещает ресурс в фиксированной области памяти.
MOVEABLE
система перемещает ресурс при необходимости в область хранения страниц на диске (своп). Действует по умолчанию.
DISCARDABLE
система освобождает ресурс, если он больше не нужен.

Замечание: опции FIXED и MOVEABLE не могут использоваться одновременно.

кодовая страница
идентификатор (номер) кодовой страницы.

ключ
код символа, скан-код или код виртуальной клавиши.
Вид кода определяется полем опции акселератора. Поле ключ должно быть либо одиночным символом, заключенным в двойные кавычки ("), либо целым числом от 0 до 255. Если указано целое, то необходимо указать одну из опций акселератора: CHAR, SCANCODE или VIRTUALKEY. Если опции акселератора пропущены, то по умолчанию используется CHAR. Целое может быть указано в десятичном или шестнадцатиричном форматах.

команда
идентификатор команды, передаваемый сообщениям WM_COMMAND, WM_HELP или WM_SYSCOMMAND.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

опции акселератора
определяют тип акселератора. Может использоваться комбинация следующих опций:

VIRTUALKEY
в поле ключ находится код виртуальной клавиши
SCANCODE
в поле ключ находится скан-код клавиши
CHAR
в поле ключ находится код символа
SHIFT
пользователь должен нажать клавишу SHIFT одновременно с клавишей, чей код определен в поле ключ
CONTROL
пользователь должен нажать клавишу CONTROL одновременно с клавишей, чей код определен в поле ключ
ALT
пользователь должен нажать клавишу ALT одновременно с клавишей, чей код определен в поле ключ
LONEKEY
пользователь должен нажать только ту клавишу, чей код определен в поле ключ
SYSCOMMAND
команда передается в сообщение WM_SYSCOMMAND
HELP
команда передается в сообщение WM_HELP

Замечание: Если опции SYSCOMMAND и HELP пропущены, то команда передается в сообщение WM_COMMAND. Несколько опций акселератора перечисляются через запятую.

Можно указать только одну из опций VIRTUALKEY, SCANCODE и CHAR. Опцию LONEKEY нельзя употреблять с опциями SHIFT, CONTROL и ALT. Опции SYSCOMMAND и HELP нельзя использовать одновременно.


Комметарий:

Если два или несколько акселераторов используют один и тот же ключ в сочетании с различными комбинациями опций SHIFT, CONTROL или ALT, то акселератор с большими ограничениями должен быть определен раньше. Например, акселератор SHIFT+ENTER должен быть определен раньше акселератора ENTER.

Если в скрипт-файл включен файл заголовков OS2.H, то можно использовать комбинации следующих констант для указания опций акселератора:

AF_VIRTUALKEY
AF_SHIFT
AF_SYSCOMMAND
AF_SCANCODE
AF_CONTROL
AF_HELP
AF_CHAR
AF_ALT


AF_LONEKEY


При составления комбинации из этих констант должна использоваться операция логического ИЛИ (|).

Пример:

   ACCELTABLE 1
   BEGIN
      "S", 101, CONTROL
      "G", 102, CONTROL, SHIFT
      "G", 103, CONTROL
   END


Создается таблица акселераторов с идентификатором 1. В таблице определены три акселератора: CTRL+S, CTRL+SHIFT+G и CTRL+G. Нажатие на эти клавиши-акселераторы генерирует сообщение WM_COMMAND, содержащее команду 101, 102 или 103 соответственно.

>>> Назад к оглавлению.


ASSOCTABLE

Синтаксис:

   ASSOCTABLE <идентификатор> [<опции загрузки>] [<опции памяти>] [<кодовая страница>]
   BEGIN
      <ассоциация>, <шаблон>[, <атрибуты>][, <файл>]
      .
      .
      .
   END

Описание:

Оператор ASSOCTABLE создает таблицу ассоциаций файлов для приложения. Эта таблица ассоциирует файлы данных, которые создает приложение, с исполняемым файлом приложения. Когда пользователь выбирает один из этих файлов данных в Менеджере Файлов, то начинает выполняться ассоциированное приложение.

Таблица ассоциаций файлов может также ассоциировать иконки с файлами данных, создаваемых приложением. Менеджер Файлов использует эти иконки для графического представления файлов. Поскольку таблица ассоциаций файлов связывает иконки по типу файлов, то все файлы данных, имеющие тот же самый тип, будут отображаться теми же самыми иконками.

В скрипт-файле можно определить любое количество операторов ASSOCTABLE. Каждый оператор должен иметь уникальный идентификатор. Таблицы ассоциаций файлов записываются не только в ресурсы исполняемого файла, но и в расширенный атрибут файлов .ASSOC. Тем не менее, только последняя таблица ассоциаций файлов, определенная в скрипт-файле ресурсов, фактически записывается в расширенные атрибуты.

идентификатор
идентификатор таблицы ассоциаций.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.
Каждая таблица ассоциаций в скрипт-файле ресурсов должна иметь уникальный идентификатор.

опции загрузки
управляют загрузкой ресурса из исполняемого файла в память.

PRELOAD
система загружает ресурс во время загрузки приложения.
LOADONCALL
система загружает ресурс, когда приложение выполнит вызов функций DosGetResource или DosGetResource2.
Действует по умолчанию.

опции памяти
управляют размещением ресурса в памяти.

FIXED
система размещает ресурс в фиксированной области памяти.
MOVEABLE
система перемещает ресурс при необходимости в область хранения страниц на диске (своп). Действует по умолчанию.
DISCARDABLE
система освобождает ресурс, если он больше не нужен.

Замечание: опции FIXED и MOVEABLE не могут использоваться одновременно.

кодовая страница
идентификатор (номер) кодовой страницы.

ассоциация
наименование типа файлов, распознаваемых приложением.
Строка символов с кодами от 1 до 255, заключенная в двойные кавычки, или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("), то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\), то его тоже следует записать дважды.

шаблон
строка-шаблон имени файлов данных, создаваемых приложением.
Строка символов с кодами от 1 до 255, заключенная в двойные кавычки, или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("), то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\), то его тоже следует записать дважды.
Можно использовать только символы, разрешенные в именах и расширениях имен файлов OS/2, и символы-заменители OS/2 (?) и (*).

атрибуты
флаги расширенных атрибутов.

Возможна комбинация следующих значений:

EAF_DEFAULTOWNER
приложение, содержащее таблицу ассоциаций файлов, стартует, когда пользователь выбирает любой файл, чье имя подходит под шаблон, в Менеджере Файлов.
EAF_REUSEICON
иконка, назначенная предыдущей таблицей ассоциаций, используется как иконка для текущего типа файлов данных.
EAF_UNCHANGEABLE
запись таблицы ассоциаций не может быть изменена.

файл
имя файла, содержащего иконку. Файл должен находиться в текущем каталоге. Менеджер Файлов использует эту иконку для графического представления всех файлов, создаваемых приложением, чье имя подходит под шаблон.

>>> Назад к оглавлению.


AUTOCHECKBOX

Синтаксис:

   AUTOCHECKBOX <текст>, <идентификатор>, <x>, <y>, <ширина>, <высота>[, <стиль>]

Описание:

Оператор AUTOCHECKBOX создает автоматический переключатель. Этот элемент управления диалога выглядит как небольшой квадратик, справа от которого находится текст с названием переключателя. Переключатель может находиться в одном из двух состояний: включен и выключен. Во включеном состоянии на квадратике изображается галочка. Пользователь может изменить состояние переключателя, выбрав его (т.е. щелкнув по нему мышью или нажав мнемосимвол на клавиатуре).
Оператор AUTOCHECKBOX может использоваться только в операторах DIALOG и WINDOW. Предопределенный класс для этого элемента управления WC_BUTTON. Если не определено иное, то по умолчанию используются стили BS_AUTOCHECKBOX и WS_TABSTOP.

текст
название переключателя, отображаемое справа от элемента управления.
Строка символов с кодами от 1 до 255, заключенная в двойные кавычки, или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("), то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\), то его тоже следует записать дважды.
Символ тильда (~) в тексте отмечает последующий символ, как символ мнемонического управления. Когда текст отображается на экране, то символ тильда (~) не отображается, а мнемонический символ подчеркивается. Пользователь может выбрать элемент управления, нажав на клавиатуре соответствующий мнемонический символ.

идентификатор
идентификатор элемента управления.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

x
координаты левого нижнего угла элемента управления по оси X (т.е. по горизонтали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

y
координаты левого нижнего угла элемента управления по оси Y (т.е. по вертикали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

ширина
ширина элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

высота
высота элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

стиль
стиль элемента управления.
Комбинация стилей с помощью операций логического ИЛИ (|), определенных для класса WC_BUTTON. Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

Пример:

   AUTOCHECKBOX "Italic", 101, 10, 10, 100, 100

Создается автоматический переключатель с текстом "Italic" справа от элемента управления.

>>> Назад к оглавлению.


AUTORADIOBUTTON

Синтаксис:

   AUTORADIOBUTTON <текст>, <идентификатор>, <x>, <y>, <ширина>, <высота>[, <стиль>]

Описание:

Оператор AUTORADIOBUTTON создает автоматическую радиокнопку. Этот элемент управления диалога выглядит как небольшой кружок, справа от которого находится текст с названием переключателя. Радиокнопка может находиться в одном из двух состояний: включена и выключена. Во включеном состоянии кружок заливается выбранным цветом.
Радиокнопки обычно объединяются в группы. Пользователь может изменить состояние группы радиокнопок, выбрав одну из них (т.е. щелкнув по нему мышью или нажав мнемосимвол на клавиатуре). Выбранная радиокнопка переходит в состояние "включено", остальные радиокнопки в этой группе выключаются. Затем родительскому окну посылается соответствующее сообщение.
Оператор AUTORADIOBUTTON может использоваться только в операторах DIALOG и WINDOW. Предопределенный класс для этого элемента управления WC_BUTTON. Если не определено иное, то по умолчанию используется стиль BS_AUTORADIOBUTTON.

текст
название переключателя, отображаемое справа от элемента управления.
Строка символов с кодами от 1 до 255, заключенная в двойные кавычки, или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("), то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\), то его тоже следует записать дважды.
Символ тильда (~) в тексте отмечает последующий символ, как символ мнемонического управления. Когда текст отображается на экране, то символ тильда (~) не отображается, а мнемонический символ подчеркивается. Пользователь может выбрать элемент управления, нажав на клавиатуре соответствующий мнемонический символ.

идентификатор
идентификатор элемента управления.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

x
координаты левого нижнего угла элемента управления по оси X (т.е. по горизонтали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

y
координаты левого нижнего угла элемента управления по оси Y (т.е. по вертикали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

ширина
ширина элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

высота
высота элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

стиль
стиль элемента управления. Комбинация стилей с помощью операции логического ИЛИ (|), определенных для класса WC_BUTTON. Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

Пример:

   AUTORADIOBUTTON "Italic", 101, 10, 10, 100, 100

Создается автоматическая радиокнопка с текстом "Italic" справа от элемента управления.

>>> Назад к оглавлению.


BITMAP

Синтаксис:

   BITMAP <идентификатор> [<опции загрузки>] [<опции памяти>] [<кодовая страница>] <файл>

Описание:

Оператор BITMAP создает ресурс, содержащий растровое изображение в формате bitmap.
Изображение обычно создается с помощью графического редактора (например, Icon Editor) и должно быть сохранено в файле в формате OS/2 bitmap. Оператор BITMAP копирует данные из файла в ресурс, который потом может использоваться в других ресурсах (например, при отображении пунктов меню). Растровое изображение может быть загружено из исполняемого файла в любое время, когда потребуется, функцией GpiLoadBitmap.

В скрипт-файле можно определить любое количество операторов BITMAP. Каждый оператор должен иметь уникальный идентификатор.

идентификатор
идентификатор ресурса.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

опции загрузки
управляют загрузкой ресурса из исполняемого файла в память.

PRELOAD
система загружает ресурс во время загрузки приложения.
LOADONCALL
система загружает ресурс, когда приложение выполнит вызов функций DosGetResource или DosGetResource2.
Действует по умолчанию.

опции памяти
управляют размещением ресурса в памяти.

FIXED
система размещает ресурс в фиксированной области памяти.
MOVEABLE
система перемещает ресурс при необходимости в область хранения страниц на диске (своп). Действует по умолчанию.
DISCARDABLE
система освобождает ресурс, если он больше не нужен.

Замечание: опции FIXED и MOVEABLE не могут использоваться одновременно.

кодовая страница
идентификатор (номер) кодовой страницы.

файл
имя файла, содержащего изображение в формате bitmap.
Если файл находится не в текущем каталоге, то нужно указать полный путь.

Пример:

   BITMAP 12 custom.bmp

Создается ресурс с идентификатором 12, содержащий растровое изображение в формате bitmap из файла CUSTOM.BMP.

>>> Назад к оглавлению.


CHECKBOX

Синтаксис:

   CHECKBOX <текст>, <идентификатор>, <x>, <y>, <ширина>, <высота>[, <стиль>]

Описание:

Оператор CHECKBOX создает переключатель. Этот элемент управления диалога выглядит как небольшой квадратик, справа от которого находится текст с названием переключателя.
Переключатель может находиться в одном из двух состояний: включен и выключен. Во включеном состоянии на квадратике изображается галочка. Пользователь может изменить состояние переключателя, выбрав его (т.е. щелкнув по нему мышью или нажав мнемосимвол на клавиатуре). Родительское окно при этом получит соответствующее сообщение.
Оператор CHECKBOX может использоваться только в операторах DIALOG и WINDOW. Предопределенный класс для этого элемента управления WC_BUTTON. Если не определено иное, то по умолчанию используются стили BS_CHECKBOX и WS_TABSTOP.

текст
название переключателя, отображаемое справа от элемента управления.
Строка символов с кодами от 1 до 255, заключенная в двойные кавычки, или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("), то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\), то его тоже следует записать дважды.
Символ тильда (~) в тексте отмечает последующий символ, как символ мнемонического управления. Когда текст отображается на экране, то символ тильда (~) не отображается, а мнемонический символ подчеркивается. Пользователь может выбрать элемент управления, нажав на клавиатуре соответствующий мнемонический символ.

идентификатор
идентификатор элемента управления.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

x
координаты левого нижнего угла элемента управления по оси X (т.е. по горизонтали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

y
координаты левого нижнего угла элемента управления по оси Y (т.е. по вертикали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

ширина
ширина элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

высота
высота элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

стиль
стиль элемента управления. Комбинация стилей с помощью операции логического ИЛИ (|), определенных для класса WC_BUTTON. Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

Пример:

   CHECKBOX "Italic", 101, 10, 10, 100, 100

Создается переключатель с текстом "Italic" справа от элемента управления.

>>> Назад к оглавлению.


CODEPAGE

Синтаксис:

   CODEPAGE <кодовая страница>

Описание:

Оператор CODEPAGE устанавливает кодовую страницу для всех последующих ресурсов.
Кодовая страница определяет набор символов, используемых в качестве букв, цифр и специальных знаков в ресурсе.

Если оператор CODEPAGE отсутствует в скрипт-файле ресурсов, то RC использует текущую кодовую страницу, установленную в конкретной системе. Если в скрипт-файле используется больше одного оператора CODEPAGE, то каждый оператор назначает кодовую страницу для ресурсов, перечисленных от одного оператора CODEPAGE до другого.

кодовая страница
идентификатор (номер) кодовой страницы.

Это может быть одно из следующих значений:

437
американская (английская)
850
многоязыковая
860
португальская
863
канадская (французская)
865
норвержская
932
японская
934
корейская
936
китайская
938
тайваньская

Комметарий:

Идентификатор кодовой страницы можно также указать в любом операторе ресурсов после опций загрузки и памяти, если оператор ресурсов позволяет это.

Пример:

   CODEPAGE 860

Для всех последующих ресурсов используется португальская кодовая страница.

>>> Назад к оглавлению.


COMBOBOX

Синтаксис:

   COMBOBOX <текст>, <идентификатор>, <x>, <y>, <ширина>, <высота>[, <стиль>]

Описание:

Оператор COMBOBOX создает комбинированный элемент управления, состоящий из поля ввода и списка. Таким образом пользователь имеет возможность поместить в поле ввода элемент списка, просто выбрав его в списке.
Оператор COMBOBOX может использоваться только в операторах DIALOG и WINDOW. Предопределенный класс для этого элемента управления WC_COMBOBOX. Если не определено иное, то по умолчанию используются стили CBS_SIMPLE, WS_GROUP, WS_TABSTOP и WS_VISIBLE.

текст
текст, отображаемый в поле ввода.
Строка символов с кодами от 1 до 255, заключенная в двойные кавычки, или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("), то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\), то его тоже следует записать дважды.

идентификатор
идентификатор элемента управления.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

x
координаты левого нижнего угла элемента управления по оси X (т.е. по горизонтали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

y
координаты левого нижнего угла элемента управления по оси Y (т.е. по вертикали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

ширина
ширина элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

высота
высота элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

стиль
стиль элемента управления. Комбинация стилей с помощью операции логического ИЛИ (|), определенных для класса WC_COMBOBOX. Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

Пример:

   COMBOBOX "Test", 101, 10, 10, 100, 100

Создается комбинированный элемент управления; в поле ввода будет сразу же помещен текст "Test".

>>> Назад к оглавлению.


CONTAINER

Синтаксис:

   CONTAINER <идентификатор>, <x>, <y>, <ширина>, <высота>[, <стиль>]

Описание:

Оператор CONTAINER создает контейнер. В контейнере могут располагаться объекты любого типа.
Оператор CONTAINER может использоваться только в операторах DIALOG и WINDOW. Предопределенный класс для этого элемента управления WC_CONTAINER. Если не определено иное, то по умолчанию используются стили CCS_SINGLESEL, WS_TABSTOP и WS_VISIBLE.

идентификатор
идентификатор элемента управления.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

x
координаты левого нижнего угла элемента управления по оси X (т.е. по горизонтали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

y
координаты левого нижнего угла элемента управления по оси Y (т.е. по вертикали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

ширина
ширина элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

высота
высота элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

стиль
стиль элемента управления. Комбинация стилей с помощью операции логического ИЛИ (|), определенных для класса WC_CONTAINER. Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

Пример:

   CONTAINER 101, 10, 10, 100, 100, CCS_MULTIPLESEL | WS_GROUP

Создается контейнер с идентификатором 101.

>>> Назад к оглавлению.


CONTROL

Синтаксис:

   CONTROL <текст>, <идентификатор>, <x>, <y>, <ширина>, <высота>, <класс>[, <стиль>]
   [ <определения данных>]
   [ BEGIN
        <определения дочерних элементов>
        .
        .
        .
     END ]

Описание:

Оператор CONTROL создает элемент управления того типа, который определен в поле класс. Оператор CONTROL наиболее часто используется в операторах DIALOG и WINDOW.

Обычно, в каждом операторе DIALOG используется несколько операторов CONTROL. Каждый оператор CONTROL должен иметь уникальный идентификатор. Дополнительные операторы, создающие дочерние элементы управления, должны располагаться между необязательными операторами BEGIN и END.

текст
текст, отображаемый совместно с элементом управления.
Строка символов с кодами от 1 до 255, заключенная в двойные кавычки, или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("), то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\), то его тоже следует записать дважды.
Символ тильда (~) в тексте отмечает последующий символ, как символ мнемонического управления. Когда текст отображается на экране, то символ тильда (~) не отображается, а мнемонический символ подчеркивается. Пользователь может выбрать элемент управления, нажав на клавиатуре соответствующий мнемонический символ.

идентификатор
идентификатор элемента управления.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

x
координаты левого нижнего угла элемента управления по оси X (т.е. по горизонтали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

y
координаты левого нижнего угла элемента управления по оси Y (т.е. по вертикали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

ширина
ширина элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

высота
высота элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

класс
класс элемента управления. Один из предопределенных классов элементов управления (WC_*).

стиль
стиль элемента управления. Комбинация стилей с помощью операции логического ИЛИ (|), определенных для данного класса. Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

определения данных
набор операторов CTLDATA и/или PRESPARAMS. Эти операторы описывают управляющие данные для элемента управления.

определения дочерних элементов
набор операторов, описывающих элементы управления предопределенных типов, или операторов CONTROL.

Комметарий:

Оператор CONTROL может содержать любую комбинацию операторов CONTROL, DIALOG и WINDOW. Но, обычно оператор CONTROL не содержит этих операторов.

Пример:

   CONTROL "Ok!", 101, 10, 10, 20, 20, WC_BUTTON,
         BS_PUSHBUTTON | WS_TABSTOP | WS_VISIBLE

Создается кнопка с текстом "Ok!" и стилями WS_TABSTOP и WS_VISIBLE.

>>> Назад к оглавлению.


CTEXT

Синтаксис:

   CTEXT <текст>, <идентификатор>, <x>, <y>, <ширина>, <высота>[, <стиль>]

Описание:

Оператор CTEXT создает прямоугольную область, содержащую отцентрованный текст.
Перед отображением текст форматируется. Если слово выходит за пределы отображаемой области, то оно автоматически переносится в начало следующей строки.
Оператор CTEXT может использоваться только в операторах DIALOG и WINDOW. Предопределенный класс для этого элемента управления WC_STATIC. Если не определено иное, то по умолчанию используются стили SS_TEXT, DT_CENTER и WS_GROUP.

текст
текст, который будет расположен в прямоугольной области элемента управления и отцентрован.
Строка символов с кодами от 1 до 255, заключенная в двойные кавычки, или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("), то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\), то его тоже следует записать дважды.

идентификатор
идентификатор элемента управления.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

x
координаты левого нижнего угла элемента управления по оси X (т.е. по горизонтали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

y
координаты левого нижнего угла элемента управления по оси Y (т.е. по вертикали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

ширина
ширина элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

высота
высота элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

стиль
стиль элемента управления. Комбинация стилей с помощью операции логического ИЛИ (|), определенных для класса WC_STATIC. Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

Пример:

   CTEXT "Filename", 101, 10, 10, 100, 100

Создается прямоугольная область с отцентрованным текстом "Filename".

>>> Назад к оглавлению.


CTLDATA

Синтаксис:

   CTLDATA <значение>[, <значение>...]

   CTLDATA <строка>

   CTLDATA MENU
   BEGIN
      <определения пунктов меню>
      .
      .
      .
   END

Описание:

Оператор CTLDATA определяет управляющие данные для пользовательских диалогов, окон и элементов управления. Существуют три формы оператора позволяющие определить меню или задать числовые или строковые данные. Данные могут быть в любом формате, поскольку только их будет использовать только процедура обработки данного окна. Процедура обработки диалога, окна или элемента управления получает эти данные во время создания окна.

значение
десятичное значение 16-битного слова.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

строка
строка 8-битных символов.
Строка символов с кодами от 1 до 255, заключенная в двойные кавычки, или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("), то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\), то его тоже следует записать дважды.

определения пунктов меню
задаются операторами MENUITEM или SUBMENU, определяющими индивидуальные команды или подменю в данном меню.

Комметарий:

Оператор CTLDATA часто используется для поддержки данных, управляющих пользовательским окном. Например, оператор CTLDATA может содержать расширенные стили, разработанные самостоятельно, которые используются только данным пользовательским окном.

Необходимо предусмотреть использование операторов CTLDATA для тех классов окон, которые разрабатываются самостоятельно.

Пример:

   WINDOWTEMPLATE 1
   BEGIN
       WINDOW "Sample", 1, 0, 0, 100, 100, "MYCLASS", 0, FCF_STANDARD
       CTLDATA MENU
       BEGIN
           MENUITEM "Exit", 101
       END
   END

Создается меню в окне, созданном оператором WINDOW.

>>> Назад к оглавлению.


DEFAULTICON

Синтаксис:

   DEFAULTICON <файл>

Описание:

Оператор DEFAULTICON помещает содержимое файла, содержащего иконку, в расширенные атрибуты программного файла (атрибут .ICON). По умолчанию в расширенные атрибуты записывается иконка, имеющая идентификатор 1.

файл
имя файла, содержащего иконку.

Пример:

   DEFAULTICON myicon.ico

Содержимое файла MYICON.ICO помещается в расширенный атрибут .ICON программного файла.

>>> Назад к оглавлению.


DEFPUSHBUTTON

Синтаксис:

   DEFPUSHBUTTON <текст>, <идентификатор>, <x>, <y>, <ширина>, <высота>[, <стиль>]

Описание:

Оператор DEFPUSHBUTTON создает нажимную кнопку, действующую по умолчанию.
Этот элемент управления диалога выглядит как прямоугольник со слегка срезанными углами, содержащий указанный текст. Прямоугольник очерчивается жирной линией, чтобы указать, что это кнопка, действующая по умолчанию.
Когда пользователь выбирает этот элемент управления (т.е. щелкает по нему мышью или нажимает мнемосимвол на клавиатуре), то родительское окно получает соответствующее сообщение.
Оператор DEFPUSHBUTTON может использоваться только в операторах DIALOG и WINDOW. Предопределенный класс для этого элемента управления WC_BUTTON. Если не определено иное, то по умолчанию используются стили BS_PUSHBUTTON, BS_DEFAULT и WS_TABSTOP.

текст
название кнопки, т.е. текст, отцентрованный в прямоугольной области, изображающей кнопку.
Строка символов с кодами от 1 до 255, заключенная в двойные кавычки, или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("), то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\), то его тоже следует записать дважды.

Текст может содержать управляющие символы:

идентификатор
идентификатор элемента управления.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

x
координаты левого нижнего угла элемента управления по оси X (т.е. по горизонтали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

y
координаты левого нижнего угла элемента управления по оси Y (т.е. по вертикали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

ширина
ширина элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

высота
высота элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

стиль
стиль элемента управления. Комбинация стилей с помощью операции логического ИЛИ (|), определенных для класса WC_BUTTON. Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

Пример:

   DEFPUSHBUTTON "Cancel", 101, 10, 10, 100, 100

Создается нажимная кнопка, действующая по умолчанию, с текстом "Cancel" на ней.

   BITMAP 401 door.bmp
   .
   .
   .
   DEFPUSHBUTTON "#401", 101, 10, 10, 100, 100, BS_BITMAP

Создается нажимная кнопка, действующая по умолчанию, с растровым изображением, содержащимся в файле DOOR.BMP.

   ICON 501 exit.ico
   .
   .
   .
   DEFPUSHBUTTON "#501", 101, 10, 10, 100, 100, BS_MINIICON

Создается нажимная кнопка, действующая по умолчанию, с растровым изображением минииконки, содержащимся в файле EXIT.ICO.

   ICON 501 exit.ico
   .
   .
   .
   DEFPUSHBUTTON "#501\tExit", 101, 10, 10, 100, 100, BS_ICON | BS_TEXT

Создается нажимная кнопка, действующая по умолчанию, с растровым изображением иконки, содержащимся в файле EXIT.ICO, и текстом "Exit", расположенным под иконкой.

>>> Назад к оглавлению.


DIALOG

Синтаксис:

   DIALOG <текст>, <идентификатор>, <x>, <y>, <ширина>, <высота>[, <стиль>[, <флаги>]]
   [ <определения данных>]
   BEGIN
      <определения дочерних элементов>
      .
      .
      .
   END

Описание:

Оператор DIALOG определяет окно, которое используется приложением для создания диалога. Оператор DIALOG наиболее часто используется в операторе DLGTEMPLATE.

Обычно, в каждом операторе DLGTEMPLATE используется только один оператор DIALOG. Элементы управления для этого диалога определяются в этом операторе и должны располагаться между операторами BEGIN и END.

текст
заголовок диалогового окна.
Строка символов с кодами от 1 до 255, заключенная в двойные кавычки, или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("), то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\), то его тоже следует записать дважды.

идентификатор
идентификатор диалогового окна.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

x
координаты левого нижнего угла диалогового окна по оси X (т.е. по горизонтали), относительно родительского окна.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

y
координаты левого нижнего угла диалогового окна по оси Y (т.е. по вертикали), относительно родительского окна.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

ширина
ширина диалогового окна.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

высота
высота диалогового окна.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

стиль
стиль диалогового окна. Комбинация стилей с помощью операции логического ИЛИ (|), определенных для окон, диалогов и фреймов. Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

флаги
флаги создания фрейма. Комбинация флагов с помощью операции логического ИЛИ (|). Если требуется отключить флаг, используемый по умолчанию, то применяется операция логического отрицания (NOT).

определения данных
набор операторов CTLDATA и/или PRESPARAMS. Эти операторы описывают управляющие данные для диалогового окна.

определения дочерних элементов
набор операторов, описывающих элементы управления предопределенных типов, или операторов CONTROL.

Комметарий:

Использование координат окна зависит от стиля окна. Диалог со стилем FS_SCREENALIGN размещается в координатах относительно экрана. Диалог со стилем FS_MOUSEALIGN размещается в координатах относительно текущего положения указателя мыши. В остальных случаях диалог размещается в координатах относительно родительского окна.

Оператор DIALOG может содержать любую комбинацию операторов CONTROL, DIALOG и WINDOW. Но, обычно оператор DIALOG содержит один или больше операторов CONTROL.

Пример:

   DLGTEMPLATE 1
   BEGIN
      DIALOG  "Disk Error", 100, 10, 10, 300, 110
      BEGIN
         CTEXT "Select One:", 1, 10, 80, 280, 12
         RADIOBUTTON "Retry", 2, 75, 50, 60, 12
         RADIOBUTTON "Abort", 3, 75, 30, 60, 12
         RADIOBUTTON "Ignore", 4, 75, 10, 60, 12
      END
   END

Создается диалоговое окно с заголовком "Disk Error".

>>> Назад к оглавлению.


DLGINCLUDE

Синтаксис:

   DLGINCLUDE <идентификатор> <файл>

Описание:

Оператор DLGINCLUDE добавляет указанное имя файла в ресурсы. Оператор DLGINCLUDE обычно используется для того, чтобы дать приложению доступ к файлу заголовков, содержащему определения констант, используемых в диалоге.

В скрипт-файле можно определить любое количество операторов DLGINCLUDE. Каждый оператор должен иметь уникальный идентификатор.

идентификатор
идентификатор диалогового окна.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

файл
имя файла, содержащего определения констант для диалога. Если файл находится не в текущем каталоге, то следует указать полный путь.

Пример:

   DLGINCLUDE 101 \\INCLUDE\\MYDEFS.H

Имя файла MYDEFS.H включается в файл ресурсов для диалогового окна с идентификатором 101.

>>> Назад к оглавлению.


DLGTEMPLATE

Синтаксис:

   DLGTEMPLATE <идентификатор> [<опции загрузки>] [<опции памяти>] [<кодовая страница>]
   BEGIN
      <определения диалога>
      .
      .
      .
   END

Описание:

Оператор DLGTEMPLATE создает шаблон диалога. Шаблон диалога содержит набор операторов, определяющих размеры и положение диалогового окна и элементов управления. Шаблон диалога может быть загружен из исполняемого файла функцией WinLoadDlg.

В скрипт-файле можно определить любое количество операторов DLGTEMPLATE. Каждый оператор должен иметь уникальный идентификатор.

идентификатор
идентификатор диалога.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

опции загрузки
управляют загрузкой ресурса из исполняемого файла в память.

PRELOAD
система загружает ресурс во время загрузки приложения.
LOADONCALL
система загружает ресурс, когда приложение выполнит вызов функций DosGetResource или DosGetResource2.
Действует по умолчанию.

опции памяти
управляют размещением ресурса в памяти.

FIXED
система размещает ресурс в фиксированной области памяти.
MOVEABLE
система перемещает ресурс при необходимости в область хранения страниц на диске (своп). Действует по умолчанию.
DISCARDABLE
система освобождает ресурс, если он больше не нужен.

Замечание: опции FIXED и MOVEABLE не могут использоваться одновременно.

кодовая страница
идентификатор (номер) кодовой страницы.

определения диалога
оператор DIALOG, определяющий размеры и стиль заданного диалога.

Комметарий:

Оператор DLGTEMPLATE может содержать любую комбинацию операторов CONTROL, DIALOG и WINDOW. Но, обычно оператор DLGTEMPLATE содержит только один оператор DIALOG.

Пример:

   DLGTEMPLATE ID_GETTIMER
   BEGIN
      DIALOG "Timer", 1, 10, 10, 100, 40
      BEGIN
         LTEXT "Time (0 - 15):", 4, 8, 24, 72, 12
         ENTRYFIELD "0", ID_TIME, 80, 28, 16, 8, ES_MARGIN
         DEFPUSHBUTTON "Enter", ID_TIMEOK, 10, 6, 36, 12
         PUSHBUTTON "Cancel", ID_TIMECANCEL, 52, 6, 40, 12
      END
   END

>>> Назад к оглавлению.


EDITTEXT

Синтаксис:

   EDITTEXT <текст>, <идентификатор>, <x>, <y>, <ширина>, <высота>[, <стиль>]

Описание:

Оператор EDITTEXT создает поле ввода, т.е. одиночную текстовую строку, которую пользователь может редактировать. Когда пользователь выбирает элемент управления, то в поле ввода отображается курсор. Пользователь может вводить или редактировать текст с помощью клавиатуры. В качестве клавиш редактирования используются также клавиши BACKSPACE и DELETE. С помощью мыши или клавиш управления курсором пользователь может установить курсор на редактируемый символ в строке или выбрать место в строке для вставки новых символов.
Оператор EDITTEXT может использоваться только в операторах DIALOG и WINDOW. Предопределенный класс для этого элемента управления WC_ENTRYFIELD. Если не определено иное, то по умолчанию используются стили ES_AUTOSCROLL и WS_TABSTOP.

текст
текст, отображаемый в поле ввода.
Строка символов с кодами от 1 до 255, заключенная в двойные кавычки, или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("), то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\), то его тоже следует записать дважды.

идентификатор
идентификатор элемента управления.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

x
координаты левого нижнего угла элемента управления по оси X (т.е. по горизонтали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

y
координаты левого нижнего угла элемента управления по оси Y (т.е. по вертикали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

ширина
ширина элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

высота
высота элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

стиль
стиль элемента управления. Комбинация стилей с помощью операции логического ИЛИ (|), определенных для класса WC_ENTRYFIELD. Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

Комметарий:

Оператор EDITTEXT идентичен оператору ENTRYFIELD.

Пример:

   EDITTEXT "Test", 101, 10, 10, 100, 100

Создается поле ввода; в поле ввода будет сразу же помещен текст "Test".

>>> Назад к оглавлению.


ENTRYFIELD

Синтаксис:

   ENTRYFIELD <текст>, <идентификатор>, <x>, <y>, <ширина>, <высота>[, <стиль>]

Описание:

Оператор ENTRYFIELD создает поле ввода, т.е. одиночную текстовую строку, которую пользователь может редактировать. Когда пользователь выбирает элемент управления, то в поле ввода отображается курсор. Пользователь может вводить или редактировать текст с помощью клавиатуры. В качестве клавиш редактирования используются также клавиши BACKSPACE и DELETE. С помощью мыши или клавиш управления курсором пользователь может установить курсор на редактируемый символ в строке или выбрать место в строке для вставки новых символов.
Оператор ENTRYFIELD может использоваться только в операторах DIALOG и WINDOW. Предопределенный класс для этого элемента управления WC_ENTRYFIELD. Если не определено иное, то по умолчанию используются стили ES_AUTOSCROLL и WS_TABSTOP.

текст
текст, отображаемый в поле ввода.
Строка символов с кодами от 1 до 255, заключенная в двойные кавычки, или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("), то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\), то его тоже следует записать дважды.

идентификатор
идентификатор элемента управления.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

x
координаты левого нижнего угла элемента управления по оси X (т.е. по горизонтали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

y
координаты левого нижнего угла элемента управления по оси Y (т.е. по вертикали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

ширина
ширина элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

высота
высота элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

стиль
стиль элемента управления. Комбинация стилей с помощью операции логического ИЛИ (|), определенных для класса WC_ENTRYFIELD. Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

Пример:

   ENTRYFIELD "Test", 101, 10, 10, 100, 100

Создается поле ввода; в поле ввода будет сразу же помещен текст "Test".

>>> Назад к оглавлению.


FONT

Синтаксис:

   FONT <идентификатор> [<опции загрузки>] [<опции памяти>] [<кодовая страница>] <файл>

Описание:

Оператор FONT определяет ресурс фонта в приложении. Фонт - это набор растровых изображений каждого символа из набора символов. Обычно он создается с помощью программы OS/2 Font Editor. Оператор FONT копирует содержимое указанного фонта в ресурс и добавляет его к другим ресурсам приложения. Фонт может быть загружен из исполняемого файла с помощью функции GpiLoadFonts.

В скрипт-файле можно определить любое количество операторов FONT. Каждый оператор должен иметь уникальный идентификатор.

идентификатор
идентификатор ресурса фонта.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

опции загрузки
управляют загрузкой ресурса из исполняемого файла в память.

PRELOAD
система загружает ресурс во время загрузки приложения.
LOADONCALL
система загружает ресурс, когда приложение выполнит вызов функций DosGetResource или DosGetResource2.
Действует по умолчанию.

опции памяти
управляют размещением ресурса в памяти.

FIXED
система размещает ресурс в фиксированной области памяти.
MOVEABLE
система перемещает ресурс при необходимости в область хранения страниц на диске (своп). Действует по умолчанию.
DISCARDABLE
система освобождает ресурс, если он больше не нужен.

Замечание: опции FIXED и MOVEABLE не могут использоваться одновременно.

кодовая страница
идентификатор (номер) кодовой страницы.

файл
имя файла, содержащего фонт. Если файл находится не в текущем каталоге, то требуется указать полный путь.

Пример:

   FONT 5 cmroman.fon

Определяется фонт с идентификатором 5. Фонт копируется в ресурсы из файла CMROMAN.FON.

>>> Назад к оглавлению.


FRAME

Синтаксис:

   FRAME <текст>, <идентификатор>, <x>, <y>, <ширина>, <высота>[, <стиль>[, <флаги>]]
   [ <определения данных>]
   [ BEGIN
        <определения дочерних окон>
        .
        .
        .
     END ]

Описание:

Оператор FRAME определяет фрейм, т.е. комбинированное окно, состоящее из нескольких окон служебного назначения. Оператор FRAME наиболее часто используется в операторе WINDOWTEMPLATE.

Обычно, в каждом операторе WINDOWTEMPLATE используется только один оператор FRAME. Оператор FRAME, в свою очередь, обычно содержит только один оператор WINDOW, определяющий клиентское окно, принадлежащее фрейму.

Фрейм не имеет предопределеного стиля. Необходимо использовать флаги создания фрейма, чтобы определить дополнительные элементы управления фрейма, такие как заголовок и системное меню, если требуется их создание. Если поле текст не пустое, то заголовок окна будет создан автоматически, даже если не определен флаг FCF_TITLEBAR. Элементы управления фрейма имеют предопределенные стили и идентификаторы, зависящие от их класса. Например, заголовку окна присваивается идентификатор FID_TITLEBAR.

текст
заголовок фрейма.
Строка символов с кодами от 1 до 255, заключенная в двойные кавычки, или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("), то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\), то его тоже следует записать дважды.

идентификатор
идентификатор фрейма.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

Служебным окнам фрейма назначаются предопределенные идентификаторы окон фрейма.

x
координаты левого нижнего угла фрейма по оси X (т.е. по горизонтали), относительно родительского окна.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

y
координаты левого нижнего угла фрейма по оси Y (т.е. по вертикали), относительно родительского окна.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

ширина
ширина фрейма.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

высота
высота фрейма.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

стиль
стиль фрейма. Комбинация стилей с помощью операции логического ИЛИ (|), определенных для окон, диалогов и фреймов. Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

флаги
флаги создания фрейма. Комбинация флагов с помощью операции логического ИЛИ (|). Если требуется отключить флаг, используемый по умолчанию, то применяется операция логического отрицания (NOT).

определения данных
набор операторов CTLDATA и/или PRESPARAMS. Эти операторы описывают управляющие данные для фрейма.

определения дочерних окон
набор операторов WINDOW, CONTROL или операторов, описывающих элементы управления предопределенных типов.

Комметарий:

Оператор FRAME может содержать любую комбинацию операторов CONTROL, DIALOG и WINDOW. Но, обычно оператор FRAME содержит только один оператор WINDOW.

Пример:

   WINDOWTEMPLATE 1
   BEGIN
      FRAME "MyWindow", 1, 10, 10, 320, 130, 0,
            FCF_STANDARD | FCF_VERTSCROLL
      BEGIN
         WINDOW "", FID_CLIENT, 0, 0, 0, 0, "MyClientClass"
      END
   END

Создается стандартный фрейм с заголовком, системным меню, кнопками максимизации и минимизации и вертикальной полосой прокрутки. Оператор FRAME содержит один оператор WINDOW, определяющий клиентское окно, принадлежащее фрейму.

>>> Назад к оглавлению.


GROUPBOX

Синтаксис:

   GROUPBOX <текст>, <идентификатор>, <x>, <y>, <ширина>, <высота>[, <стиль>]

Описание:

Оператор GROUPBOX создает прямоугольную рамку, содержащую текст в левом верхнем углу, визуально объединяющую элементы управления в группу.
Оператор GROUPBOX может использоваться только в операторах DIALOG и WINDOW. Предопределенный класс для этого элемента управления WC_STATIC. Если не определено иное, то по умолчанию используются стили SS_GROUPBOX и WS_TABSTOP.

текст
текст, которым будет озаглавлена группа.
Строка символов с кодами от 1 до 255, заключенная в двойные кавычки, или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("), то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\), то его тоже следует записать дважды.

идентификатор
идентификатор элемента управления.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

x
координаты левого нижнего угла элемента управления по оси X (т.е. по горизонтали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

y
координаты левого нижнего угла элемента управления по оси Y (т.е. по вертикали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

ширина
ширина элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

высота
высота элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

стиль
стиль элемента управления. Комбинация стилей с помощью операции логического ИЛИ (|), определенных для класса WC_STATIC. Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

Пример:

   GROUPBOX "Options", 101, 10, 10, 100, 100

Создается прямоугольная рамка, озаглавленная текстом "Options".

>>> Назад к оглавлению.


HELPITEM

Синтаксис:

   HELPITEM <окно приложения>, <подтаблица помощи>, <расширенная панель помощи>

Описание:

Оператор HELPITEM определяет пункт помощи в таблице помощи, т.е. ассоциирует окно приложения с окном, в котором будет отображаться помощь, назначенная для дочерних окон данного окна заданной подтаблицей помощи. Его можно использовать только в операторе HELPTABLE.

В операторе HELPTABLE можно указать любое количество операторов HELPITEM. Необходимо определить один оператор HELPITEM для каждого окна приложения, для которого предоставляется помощь.

окно приложения
идентификатор окна приложения, для которого предоставляется помощь.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

подтаблица помощи
идентификатор подтаблицы помощи, ассоциируемой с данным окном приложения.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

расширенная панель помощи
идентификатор окна, в котором будет отображаться помощь, назначенная данной подтаблицей помощи.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

Пример:

   HELPITEM IDWIN_FILEMENU, IDSUB_FILEMENU, IDEXT_APPHLP

Определяется пункт помощи, который ассоциирует подтаблицу IDSUB_FILEMENU и расширенную панель помощи IDEXT_APPHLP с окном приложения IDWIN_FILEMENU.

>>> Назад к оглавлению.


HELPSUBITEM

Синтаксис:

   HELPSUBITEM <дочернее окно>, <панель помощи>[, <целое>...]

Описание:

Оператор HELPSUBITEM определяет подпункт помощи в подтаблице помощи, т.е. ассоциирует дочерние окна, например, пункты меню и элементы управления диалогов, такие как кнопки, поля ввода и т.д., с ресурсами файла помощи .HLP, Оператор HELPSUBITEM можно использовать только в операторе HELPSUBTABLE.

В операторе HELPSUBTABLE можно указать любое количество операторов HELPSUBITEM. Необходимо определить один оператор HELPSUBITEM для каждого дочернего окна приложения, для которого предоставляется помощь.

дочернее окно
идентификатор дочернего окна приложения, для которого предоставляется помощь.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

панель помощи
идентификатор панели помощи, ассоциируемой с дочерним окном приложения.
Целое число от 1 до 64000 или простое выражение, имеющее результатом число в указанных границах.

Должен соответствовать значению параметра res=, используемому в тегах :h1-:h6 файлов помощи .HLP.

целое
дополнительные целочисленные значения, используемые приложением.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

Если это поле используется, то необходимо включить оператор SUBITEMSIZE в подтаблицу помощи, чтобы определить количество данных (в словах). По умолчанию, в каждом операторе HELPSUBITEM используются два слова данных.

Пример:

   HELPSUBITEM IDCLD_FILEMENU, IDHP_FILEMENU

Определяется подпункт помощи, который ассоциирует панель помощи IDHP_FILEMENU с дочерним окном приложения IDCLD_FILEMENU.

>>> Назад к оглавлению.


HELPSUBTABLE

Синтаксис:

   HELPSUBTABLE <идентификатор>
   [ <определение числа данных> ]
   BEGIN
      <определения подпунктов помощи>
      .
      .
      .
   END

Описание:

Оператор HELPSUBTABLE определяет содержимое ресурса подтаблицы помощи. Подтаблица помощи содержит назначения для каждого элемента, который может быть выбран в окне приложения. Каждый из этих элементов, описанных в подтаблице помощи, должен быть дочерним для окна приложения. Подтаблица помощи должна содержать назначения для каждого элемента управления, дочернего окна и меню в окне приложения.

В скрипт-файле можно определить любое количество операторов HELPSUBTABLE. Каждый оператор должен иметь уникальный идентификатор. В операторе HELPSUBTABLE можно указать любое количество операторов HELPSUBITEM, определяющих назначения помощи для дочерних окон.

Если в определениях подпунктов помощи используются дополнительные необязательные целые значения, то необходимо включить оператор SUBITEMSIZE, чтобы определить количество данных (в словах). Все подпункты в подтаблице помощи должны использовать заданное количество данных. По умолчанию, в каждом операторе HELPSUBITEM используются два слова данных.

идентификатор
идентификатор подтаблицы помощи.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

определение числа данных
оператор SUBITEMSIZE, задающий число данных (в словах) в каждом операторе HELPSUBITEM

определения подпунктов помощи
набор операторов HELPSUBITEM, задающих определения подпунктов помощи.

Пример:

   HELPSUBTABLE IDSUB_FILEMENU
   BEGIN
      HELPSUBITEM IDCLD_OPEN, IDPNL_OPEN
      HELPSUBITEM IDCLD_SAVE, IDPNL_SAVE
   END

Определяется подтаблица помощи IDSUB_FILEMENU, в которой каждому дочернему окну назначается ресурс помощи из файла .HLP.

>>> Назад к оглавлению.


HELPTABLE

Синтаксис:

   HELPTABLE <идентификатор>
   BEGIN
      <определения пунктов помощи>
      .
      .
      .
   END

Описание:

Оператор HELPTABLE определяет содержимое ресурса таблицы помощи. Таблица помощи содержит назначения помощи для каждого окна приложения, диалога или окна сообщений.

В скрипт-файле можно определить любое количество операторов HELPTABLE. Каждый оператор должен иметь уникальный идентификатор. В операторе HELPTABLE можно указать любое количество операторов HELPITEM, связывающих окна приложения с окнами, в которых будет отображаться помощь, назначенная в подтаблицах.

идентификатор
идентификатор таблицы помощи.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

определения пунктов помощи
набор операторов HELPITEM, задающих определения пунктов помощи.

Пример:

   HELPTABLE 1
   BEGIN
      HELPITEM IDWIN_FILEMENU, IDSUB_FILEMENU, IDEXT_APPHLP
      HELPITEM IDWIN_EDITMENU, IDSUB_EDITMENU, IDEXT_APPHLP
   END

Определяется таблица помощи с идентификатором 1, в которой задается, что для отображения помощи для окон IDWIN_FILEMENU и IDWIN_EDITMENU будет использоваться одно и то же окно с идентификатором IDEXT_APPHLP.

>>> Назад к оглавлению.


ICON (ресурс)

Синтаксис:

   ICON <идентификатор> [<опции загрузки>] [<опции памяти>] [<кодовая страница>] <файл>


Описание:

Оператор ICON создает ресурс, содержащий растровое изображение иконки.
Изображение обычно создается с помощью графического редактора (например, Icon Editor) и должно быть сохранено в файле в формате OS/2 icon. Оператор ICON копирует данные из файла в ресурс, который потом может использоваться в других ресурсах (например, на нажимных кнопках). Иконка может быть загружена во время создания окна со стилем FS_ICON функцией WinCreateStdWindow.

В скрипт-файле можно определить любое количество операторов ICON. Каждый оператор должен иметь уникальный идентификатор.

идентификатор
идентификатор ресурса.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

Иконка с идентификатором 1 имеет особое значение.

опции загрузки
управляют загрузкой ресурса из исполняемого файла в память.

PRELOAD
система загружает ресурс во время загрузки приложения.
LOADONCALL
система загружает ресурс, когда приложение выполнит вызов функций DosGetResource или DosGetResource2.
Действует по умолчанию.

опции памяти
управляют размещением ресурса в памяти.

FIXED
система размещает ресурс в фиксированной области памяти.
MOVEABLE
система перемещает ресурс при необходимости в область хранения страниц на диске (своп). Действует по умолчанию.
DISCARDABLE
система освобождает ресурс, если он больше не нужен.

Замечание: опции FIXED и MOVEABLE не могут использоваться одновременно.

кодовая страница
идентификатор (номер) кодовой страницы.

файл
имя файла, содержащего изображение иконки. Если файл находится не в текущем каталоге, то нужно указать полный путь.

Комметарий:

Иконка с идентификатором 1 - это иконка, используемая по умолчанию. RC записывает иконку не только в ресурсы исполняемого файла, но также и в расширенный атрибут .ICON этого файла. Менеджер Файлов будет отображать эту иконку рядом с именем исполняемого файла.

Пример:

   ICON 12 custom.ico

Создается ресурс с идентификатором 12, содержащий растровое изображение иконки из файла CUSTOM.ICO.

>>> Назад к оглавлению.


ICON

Синтаксис:

   ICON <иконка>, <идентификатор>, <x>, <y>, <ширина>, <высота>[, <стиль>]


Описание:

Оператор ICON создает прямоугольную область, содержащую иконку. Параметры ширина и высота игнорируются, область автоматически принимает нужные размеры.
Оператор ICON может использоваться только в операторах DIALOG и WINDOW. Предопределенный класс для этого элемента управления WC_STATIC. Если не определено иное, то по умолчанию используются стиль SS_ICON.

иконка
идентификатор ресурса иконки, предварительно определенный в файле ресурсов.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

идентификатор
идентификатор элемента управления.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

x
координаты левого нижнего угла элемента управления по оси X (т.е. по горизонтали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

y
координаты левого нижнего угла элемента управления по оси Y (т.е. по вертикали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

ширина
ширина элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

Игнорируется, может быть установлен в 0.

высота
высота элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

Игнорируется, может быть установлен в 0.

стиль
стиль элемента управления. Комбинация стилей с помощью операции логического ИЛИ (|), определенных для класса WC_STATIC. Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

Пример:

   ICON 5, 101, 10, 10, 0, 0

Создается прямоугольная область, содержащая изображение иконки, которая имеет идентификатор ресурса 5.

>>> Назад к оглавлению.


LISTBOX

Синтаксис:

   LISTBOX <идентификатор>, <x>, <y>, <ширина>, <высота>[, <стиль>]

Описание:

Оператор LISTBOX создает список, состоящий из текстовых строк, из которых пользователь может сделать выбор.
Оператор LISTBOX может использоваться только в операторах DIALOG и WINDOW. Предопределенный класс для этого элемента управления WC_LISTBOX. Если не определено иное, то по умолчанию используются стиль WS_TABSTOP.

идентификатор
идентификатор элемента управления.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

x
координаты левого нижнего угла элемента управления по оси X (т.е. по горизонтали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

y
координаты левого нижнего угла элемента управления по оси Y (т.е. по вертикали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

ширина
ширина элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

высота
высота элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

стиль
стиль элемента управления. Комбинация стилей с помощью операции логического ИЛИ (|), определенных для класса WC_LISTBOX. Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

Пример:

   LISTBOX 101, 10, 10, 100, 100

Создается список текстовых строк с идентификатором 101.

>>> Назад к оглавлению.


LTEXT

Синтаксис:

   LTEXT <текст>, <идентификатор>, <x>, <y>, <ширина>, <высота>[, <стиль>]

Описание:

Оператор LTEXT создает прямоугольную область, содержащую текст, выравненный по левой границе.
Перед отображением текст форматируется. Если слово выходит за пределы отображаемой области, то оно автоматически переносится в начало следующей строки.
Оператор LTEXT может использоваться только в операторах DIALOG и WINDOW. Предопределенный класс для этого элемента управления WC_STATIC. Если не определено иное, то по умолчанию используются стили SS_TEXT, DT_LEFT и WS_GROUP.

текст
текст, который будет расположен в прямоугольной области элемента управления и выравнен по левой границе.
Строка символов с кодами от 1 до 255, заключенная в двойные кавычки, или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("), то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\), то его тоже следует записать дважды.

идентификатор
идентификатор элемента управления.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

x
координаты левого нижнего угла элемента управления по оси X (т.е. по горизонтали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

y
координаты левого нижнего угла элемента управления по оси Y (т.е. по вертикали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

ширина
ширина элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

высота
высота элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

стиль
стиль элемента управления. Комбинация стилей с помощью операции логического ИЛИ (|), определенных для класса WC_STATIC. Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

Пример:

   LTEXT "Filename", 101, 10, 10, 100, 100

Создается прямоугольная область с выравненным слева текстом "Filename".

>>> Назад к оглавлению.


MENU

Синтаксис:

   MENU <идентификатор> [<опции загрузки>] [<опции памяти>] [<кодовая страница>]
   BEGIN
      <определения пунктов меню>
      .
      .
      .
   END

Описание:

Оператор MENU создает меню. Ресурс меню объединяет информацию, определяющую внешний вид и функции меню приложения. Меню - это специальный инструмент, позволяющий пользователю выбрать команду из списка наименований команд. Меню может быть загружено из исполняемого файла функцией WinLoadMenu.

В скрипт-файле можно определить любое количество операторов MENU. Каждый оператор должен иметь уникальный идентификатор. В каждом меню можно определить любое количество операторов, описывающих пункты меню (команды) и подменю. Порядок следования операторов определяет порядок следования пунктов меню.

идентификатор
идентификатор меню.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

опции загрузки
управляют загрузкой ресурса из исполняемого файла в память.

PRELOAD
система загружает ресурс во время загрузки приложения.
LOADONCALL
система загружает ресурс, когда приложение выполнит вызов функций DosGetResource или DosGetResource2.
Действует по умолчанию.

опции памяти
управляют размещением ресурса в памяти.

FIXED
система размещает ресурс в фиксированной области памяти.
MOVEABLE
система перемещает ресурс при необходимости в область хранения страниц на диске (своп). Действует по умолчанию.
DISCARDABLE
система освобождает ресурс, если он больше не нужен.

Замечание: опции FIXED и MOVEABLE не могут использоваться одновременно.

кодовая страница
идентификатор (номер) кодовой страницы.

определения пунктов меню
задаются операторами MENUITEM или SUBMENU, определяющими индивидуальные команды или подменю в данном меню. Оператор PRESPARAMS позволяет определить внешний вид меню, т.е. цветовое оформление и фонты.

Пример:

   MENU 1
   BEGIN
      MENUITEM "Alpha", 100
      SUBMENU "Beta", 101
      BEGIN
         MENUITEM "Item 1", 200
         MENUITEM "Item 2", 201, , MIA_CHECKED
      END
   END

Создается меню с идентификатором 1, содержащее пункт меню "Alpha" и подменю "Beta", которое содержит два пункта меню "Item 1" и "Item 2". Пункт "Item 2" имеет поле для отметки.

>>> Назад к оглавлению.


MENUITEM

Синтаксис:

   MENUITEM <текст>, <идентификатор>[ ,<стиль>][, <атрибуты>]

   MENUITEM SEPARATOR

Описание:

Оператор MENUITEM создает пункт меню. Этот оператор можно использовать только в операторах MENU и SUBMENU. Когда пользователь выбирает пункт меню, то система генерирует сообщение WM_COMMAND, включает в него идентификатор пункта меню и посылает окну-владельцу меню.

В операторах MENU и SUBMENU можно описать любое количество операторов MENUITEM, но каждый из них должен иметь уникальный идентификатор.

Альтернативной формой оператора MENUITEM является оператор MENUITEM SEPARATOR, создающий разделитель меню - горизонтальную черту, разделяющую два пункта меню. Разделитель не может быть выбран, не имеет названия и идентификатора.

текст
название пункта меню.
Строка символов с кодами от 1 до 255, заключенная в двойные кавычки, или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("), то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\), то его тоже следует записать дважды.

Текст может содержать управляющие символы:

идентификатор
идентификатор пункта меню.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

стиль
стиль пункта меню. Комбинация стилей с помощью операции логического ИЛИ (|). Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

атрибуты
атрибуты пункта меню. Комбинация атрибутов с помощью операции логического ИЛИ (|). Если требуется отключить атрибут, используемый по умолчанию, то применяется операция логического отрицания (NOT).

Пример:

   MENUITEM "Alpha", 101

Создается пункт меню с именем "Alpha" и идентификатором 101.

   MENUITEM "Beta", 102, MIS_TEXT, MIA_CHECKED

Создается текстовый пункт меню с именем "Beta" и идентификатором 102. Пункт меню имеет поле для отметки.

   MENUITEM "Gamma", 103
   MENUITEM SEPARATOR
   MENUITEM "Delta", 104

Создается разделитель между пунктами меню с именами "Gamma" и "Delta".

   BITMAP 401 door.bmp
   .
   .
   .
   MENUITEM "#401", 105, MIS_BITMAP

Создается пункт меню с растровым изображением, содержащимся в файле DOOR.BMP.

>>> Назад к оглавлению.


MESSAGETABLE

Синтаксис:

   MESSAGETABLE [<опции загрузки>] [<опции памяти>] [<кодовая страница>]
   BEGIN
      <идентификатор> <текст>
      .
      .
      .
   END

Описание:

Оператор MESSAGETABLE создает один или больше ресурсов строк для приложения. Ресурс строки - это текстовая строка, заканчивающаяся символом 0x00, имеющая уникальный идентификатор. Ресурс строки может быть загружен из исполняемого файла функциями DosGetResource или DosGetResource2 при указании типа ресурса RT_MESSAGE.

В скрипт-файле можно определить любое количество операторов MESSAGETABLE. Компилятор ресурсов соберет все строки из разных операторов MESSAGETABLE и обработает их таким образом, как если бы они находились в одном операторе MESSAGETABLE. Каждая строка должна иметь свой уникальный идентификатор.

Несмотря на то, что операторы MESSAGETABLE и STRINGTABLE очень похожи, в приложениях чаще используется оператор STRINGTABLE.

опции загрузки
управляют загрузкой ресурса из исполняемого файла в память.

PRELOAD
система загружает ресурс во время загрузки приложения.
LOADONCALL
система загружает ресурс, когда приложение выполнит вызов функций DosGetResource или DosGetResource2.
Действует по умолчанию.

опции памяти
управляют размещением ресурса в памяти.

FIXED
система размещает ресурс в фиксированной области памяти.
MOVEABLE
система перемещает ресурс при необходимости в область хранения страниц на диске (своп). Действует по умолчанию.
DISCARDABLE
система освобождает ресурс, если он больше не нужен.

Замечание: опции FIXED и MOVEABLE не могут использоваться одновременно.

кодовая страница
идентификатор (номер) кодовой страницы.

идентификатор
идентификатор строки.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

текст
текстовая строка.
Строка символов с кодами от 1 до 255, заключенная в двойные кавычки, или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("), то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\), то его тоже следует записать дважды.

Комментарий:

При записи в скрипт-файле ресурсов строку можно прервать символом обратный слэш (\) и продолжить ее на следующей строке. Или закрыть ее символом двойные кавычки (") и продолжить на следующей строке, начав с символа двойные кавычки (").

Пример:

   MESSAGETABLE
   BEGIN
      1 "Filename not found"
      2 "Cannot open file f"
        "or reading"
   END

Создается два ресурса строк с идентификаторами 1 и 2.

>>> Назад к оглавлению.


MLE

Синтаксис:

   MLE <текст>, <идентификатор>, <x>, <y>, <ширина>, <высота>[, <стиль>]

Описание:

Оператор MLE создает поле ввода, состоящее из нескольких текстовых строк, которые пользователь может редактировать. Когда пользователь выбирает элемент управления, то в поле ввода отображается курсор. Пользователь может вводить или редактировать текст с помощью клавиатуры. В качестве клавиш редактирования используются также клавиши BACKSPACE и DELETE. С помощью мыши или клавиш управления курсором пользователь может установить курсор на редактируемый символ в строке или выбрать место в строке для вставки новых символов.
Оператор MLE может использоваться только в операторах DIALOG и WINDOW. Предопределенный класс для этого элемента управления WC_MLE. Если не определено иное, то по умолчанию используются стили MLS_BORDER, WS_GROUP и WS_TABSTOP.

текст
текст, отображаемый в поле ввода.
Строка символов с кодами от 1 до 255, заключенная в двойные кавычки, или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("), то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\), то его тоже следует записать дважды.

Если не указан стиль MLS_READONLY, то пользователь может редактировать текст.

идентификатор
идентификатор элемента управления.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

x
координаты левого нижнего угла элемента управления по оси X (т.е. по горизонтали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

y
координаты левого нижнего угла элемента управления по оси Y (т.е. по вертикали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

ширина
ширина элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

высота
высота элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

стиль
стиль элемента управления. Комбинация стилей с помощью операции логического ИЛИ (|), определенных для класса WC_MLE. Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

Пример:

   MLE "", 101, 10, 10, 100, 100

Создается многострочное поле ввода.

>>> Назад к оглавлению.


NOTEBOOK

Синтаксис:

   NOTEBOOK <идентификатор>, <x>, <y>, <ширина>, <высота>[, <стиль>]

Описание:

Оператор NOTEBOOK создает элемент управления в виде блокнота, т.е. набора страничек с названиями на закладках. Текущая страничка видна, остальные скрыты, но закладки видны и позволяют быстро выбрать соответствующую страничку.
Оператор NOTEBOOK может использоваться только в операторах DIALOG и WINDOW. Предопределенный класс для этого элемента управления WC_NOTEBOOK. Если не определено иное, то по умолчанию используются стили WS_TABSTOP и WS_VISIBLE.

идентификатор
идентификатор элемента управления.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

x
координаты левого нижнего угла элемента управления по оси X (т.е. по горизонтали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

y
координаты левого нижнего угла элемента управления по оси Y (т.е. по вертикали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

ширина
ширина элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

высота
высота элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

стиль
стиль элемента управления. Комбинация стилей с помощью операции логического ИЛИ (|), определенных для класса WC_NOTEBOOK. Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

Пример:

   #define    IDC_NOTEBOOK     201
   #define    IDD_NOTEBOOKDLG  503
   DIALOG "Notebook", IDD_NOTEBOOKDLG, 11, 11, 420, 420, FS_NOBYTEALIGN |
          WS_VISIBLE, FCF_SYSMENU | FCF_TITLEBAR
   BEGIN
      NOTEBOOK   IDC_NOTEBOOK, 20, 20, 200, 400, BKS_ROUNDEDTABS | WS_GROUP
   END

Создается блокнот с идентификатором 201.

>>> Назад к оглавлению.


POINTER

Синтаксис:

   POINTER <идентификатор> [<опции загрузки>] [<опции памяти>] [<кодовая страница>] <файл>

Описание:

Оператор POINTER создает ресурс, содержащий растровое изображение указателя мыши.
Изображение обычно создается с помощью графического редактора (например, Icon Editor) и должно быть сохранено в файле в формате OS/2 pointer. Оператор POINTER копирует данные из файла в ресурс, который потом может использоваться в других ресурсах. Указатель может быть загружен из исполняемого файла функцией WinLoadPointer.

В скрипт-файле можно определить любое количество операторов POINTER. Каждый оператор должен иметь уникальный идентификатор.

идентификатор
идентификатор ресурса.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

опции загрузки
управляют загрузкой ресурса из исполняемого файла в память.

PRELOAD
система загружает ресурс во время загрузки приложения.
LOADONCALL
система загружает ресурс, когда приложение выполнит вызов функций DosGetResource или DosGetResource2.
Действует по умолчанию.

опции памяти
управляют размещением ресурса в памяти.

FIXED
система размещает ресурс в фиксированной области памяти.
MOVEABLE
система перемещает ресурс при необходимости в область хранения страниц на диске (своп). Действует по умолчанию.
DISCARDABLE
система освобождает ресурс, если он больше не нужен.

Замечание: опции FIXED и MOVEABLE не могут использоваться одновременно.

кодовая страница
идентификатор (номер) кодовой страницы.

файл
имя файла, содержащего изображение указателя мыши. Если файл находится не в текущем каталоге, то нужно указать полный путь.

Пример:

   POINTER 12 custom.ptr

Создается ресурс с идентификатором 12, содержащий растровое изображение указателя мыши из файла CUSTOM.PTR.

>>> Назад к оглавлению.


PRESPARAMS

Синтаксис:

   PRESPARAMS <параметр>, <значение>, <параметр>, <значение>, ...

Описание:

Оператор PRESPARAMS определяет набор параметров, настраивающих внешний вид диалогов, меню, окон или элементов управления. Процедура обработки диалога, меню, окна или элемента управления получает эти параметры и обрабатывает их во время создания окна. Данные для настройки самостоятельно разработанных элементов управления могут быть в любом формате.

параметр
идентификатор параметра отображения, определяющий настраиваемый элемент окна.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

значение
значение настройки элемента окна.
Вид значения (строка или число) определяется полем параметр.

Цвета задаются либо в формате RGB, либо в виде индекса цвета логической таблицы, либо в виде индекса системного цвета.

Размер и имя фонта задается в виде строки, начинающейся с десятичного представления размера, отделенного символом точка (.) от названия фонта, например, "12.Helv".

Комметарий:

Оператор PRESPARAMS часто используется для настройки внешнего вида окон во время создания. Например, можно задать цвета, используемые в окне.

Пример:

   MENU 1
   BEGIN
       PRESPARAMS PP_FONTNAMESIZE, "12.Helv"
       MENUITEM "New", 101
       MENUITEM "Open", 102
       MENUITEM "Save", 103
   END

Создается меню с идентификатором 1. Оператор PRESPARAMS определяет, что следующие три пункта меню отображаются фонтом Helvetica размера 12.

>>> Назад к оглавлению.


PUSHBUTTON

Синтаксис:

   PUSHBUTTON <текст>, <идентификатор>, <x>, <y>, <ширина>, <высота>[, <стиль>]

Описание:

Оператор PUSHBUTTON создает нажимную кнопку.
Этот элемент управления диалога выглядит как прямоугольник со слегка срезанными углами, содержащий указанный текст.
Когда пользователь выбирает этот элемент управления (т.е. щелкает по нему мышью или нажимает мнемосимвол на клавиатуре), то родительское окно получает соответствующее сообщение.
Оператор PUSHBUTTON может использоваться только в операторах DIALOG и WINDOW. Предопределенный класс для этого элемента управления WC_BUTTON. Если не определено иное, то по умолчанию используются стили BS_PUSHBUTTON и WS_TABSTOP.

текст
название кнопки, т.е. текст, отцентрованный в прямоугольной области, изображающей кнопку.
Строка символов с кодами от 1 до 255, заключенная в двойные кавычки, или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("), то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\), то его тоже следует записать дважды.

Текст может содержать управляющие символы:

идентификатор
идентификатор элемента управления.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

x
координаты левого нижнего угла элемента управления по оси X (т.е. по горизонтали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

y
координаты левого нижнего угла элемента управления по оси Y (т.е. по вертикали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

ширина
ширина элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

высота
высота элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

стиль
стиль элемента управления. Комбинация стилей с помощью операции логического ИЛИ (|), определенных для класса WC_BUTTON. Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

Пример:

   PUSHBUTTON "Cancel", 101, 10, 10, 100, 100

Создается нажимная кнопка с текстом "Cancel" на ней.

   BITMAP 401 door.bmp
   .
   .
   .
   PUSHBUTTON "#401", 101, 10, 10, 100, 100, BS_BITMAP

Создается нажимная кнопка с растровым изображением, содержащимся в файле DOOR.BMP.

   ICON 501 exit.ico
   .
   .
   .
   PUSHBUTTON "#501", 101, 10, 10, 100, 100, BS_MINIICON

Создается нажимная кнопка с растровым изображением минииконки, содержащимся в файле EXIT.ICO.

   ICON 501 exit.ico
   .
   .
   .
   PUSHBUTTON "#501\tExit", 101, 10, 10, 100, 100, BS_ICON | BS_TEXT

Создается нажимная кнопка с растровым изображением иконки, содержащимся в файле EXIT.ICO, и текстом "Exit", расположенным под иконкой.

>>> Назад к оглавлению.


RADIOBUTTON

Синтаксис:

   RADIOBUTTON <текст>, <идентификатор>, <x>, <y>, <ширина>, <высота>[, <стиль>]

Описание:

Оператор RADIOBUTTON создает радиокнопку.
Этот элемент управления диалога выглядит как небольшой кружок, справа от которого находится текст с названием переключателя. Радиокнопка может находиться в одном из двух состояний: включена и выключена. Во включеном состоянии кружок заливается выбранным цветом.
Радиокнопки обычно объединяются в группы. Пользователь может изменить состояние группы радиокнопок, выбрав одну из них (т.е. щелкнув по нему мышью или нажав мнемосимвол на клавиатуре). Выбранная радиокнопка переходит в состояние "включено", остальные радиокнопки в этой группе выключаются. Затем родительскому окну посылается соответствующее сообщение.
Оператор RADIOBUTTON может использоваться только в операторах DIALOG и WINDOW. Предопределенный класс для этого элемента управления WC_BUTTON. Если не определено иное, то по умолчанию используется стиль BS_RADIOBUTTON.

текст
название переключателя, отображаемое справа от элемента управления.
Строка символов с кодами от 1 до 255, заключенная в двойные кавычки, или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("), то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\), то его тоже следует записать дважды.
Символ тильда (~) в тексте отмечает последующий символ, как символ мнемонического управления. Когда текст отображается на экране, то символ тильда (~) не отображается, а мнемонический символ подчеркивается. Пользователь может выбрать элемент управления, нажав на клавиатуре соответствующий мнемонический символ.

идентификатор
идентификатор элемента управления.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

x
координаты левого нижнего угла элемента управления по оси X (т.е. по горизонтали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

y
координаты левого нижнего угла элемента управления по оси Y (т.е. по вертикали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

ширина
ширина элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

высота
высота элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

стиль
стиль элемента управления. Комбинация стилей с помощью операции логического ИЛИ (|), определенных для класса WC_BUTTON. Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

Пример:

   RADIOBUTTON "Italic", 101, 10, 10, 100, 100

Создается радиокнопка с текстом "Italic" справа от элемента управления.

>>> Назад к оглавлению.


RCDATA

Синтаксис:

   RCDATA <идентификатор>
   BEGIN
      <определение данных>[, ...]
      .
      .
      .
   END

Описание:

Оператор RCDATA создает ресурс данных пользователя для приложения. Данные пользователя должны быть в той форме, в которой требуются приложению. Ресурс данных пользователя может быть загружен из исполняемого файла функциями DosGetResource или DosGetResource2 при указании типа ресурса RT_RCDATA.

В скрипт-файле можно определить любое количество операторов RCDATA. Каждый оператор должен иметь свой уникальный идентификатор.

идентификатор
идентификатор ресурса.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

определение данных
данные пользователя в виде строки, числа или простого выражения.

Пример:

   RCDATA 5
   BEGIN
      "E. A. Poe", 1849, -32, 3L, 0x8000000l, 3+4+5
   END

Создается ресурс данных пользователя с идентификатором 5.

>>> Назад к оглавлению.


RCINCLUDE

Синтаксис:

   RCINCLUDE <файл>

Описание:

Оператор RCINCLUDE определяет, что компилятор ресурсов должен обработать указанный файл вместе с текущим скрипт-файлом ресурсов. Содержимое обоих файлов объединяется, компилируется и результат помещается в единственный двоичный файл ресурсов и/или исполняемый файл.

файл
имя скрипт-файла ресурсов, объединяемого с текущим. Если файл находится не в текущем каталоге, то следует указать полный путь.

Комментарий:

Обработка оператора RCINCLUDE выполняется до начала обработки любых других операторов, включая препроцессор RCPP.EXE, удаляющий комментарии, вставляющий значения вместо макропеременных и т.д.

Длинные имена файлов (например, для файловой системы HPFS) необходимо заключить в двойные кавычки:

   RCINCLUDE "d:\project\long dialog.dlg"

Это позволяет компилятору ресурсов распознавать имена файлов, содержащие пробелы.

Пример:

   RCINCLUDE dialogs.dlg

Существующий скрипт-файл ресурсов объединяется со скрипт-файлом определения диалогов DIALOGS.DLG.

>>> Назад к оглавлению.


RESOURCE

Синтаксис:

   RESOURCE <тип> <идентификатор> [<опции загрузки>] [<опции памяти>] [<кодовая страница>] <файл>

Описание:

Оператор RESOURCE создает ресурс данных пользователя для приложения. Оператор RESOURCE копирует данные из файла в ресурс, который потом может использоваться в других ресурсах. Ресурс данных пользователя может быть загружен из исполняемого файла функциями DosGetResource или DosGetResource2 при указании типа и идентификатора ресурса.

В скрипт-файле можно определить любое количество операторов RESOURCE. Каждый оператор должен иметь уникальную комбинацию значений типа и идентификатора.

тип
тип ресурса.
Целое число от 256 до 65535 или простое выражение, имеющее результатом число в указанных границах.

Значения от 0 до 255 зарезервированы системой и не могут быть использованы в качестве типа ресурса.

идентификатор
идентификатор ресурса.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

опции загрузки
управляют загрузкой ресурса из исполняемого файла в память.

PRELOAD
система загружает ресурс во время загрузки приложения.
LOADONCALL
система загружает ресурс, когда приложение выполнит вызов функций DosGetResource или DosGetResource2.
Действует по умолчанию.

опции памяти
управляют размещением ресурса в памяти.

FIXED
система размещает ресурс в фиксированной области памяти.
MOVEABLE
система перемещает ресурс при необходимости в область хранения страниц на диске (своп). Действует по умолчанию.
DISCARDABLE
система освобождает ресурс, если он больше не нужен.

Замечание: опции FIXED и MOVEABLE не могут использоваться одновременно.

кодовая страница
идентификатор (номер) кодовой страницы.

файл
имя файла, содержащего ресурс пользователя. Если файл находится не в текущем каталоге, то следует указать полный путь.

Пример:

   RESOURCE 300 144 custom.res

Создается ресурс пользователя, имеющий тип 300 и идентификатор 14. Содержимое ресурса копируется из файла CUSTOM.RES

>>> Назад к оглавлению.


RTEXT

Синтаксис:

   RTEXT <текст>, <идентификатор>, <x>, <y>, <ширина>, <высота>[, <стиль>]

Описание:

Оператор RTEXT создает прямоугольную область, содержащую текст, выравненный по правой границе.
Перед отображением текст форматируется. Если слово выходит за пределы отображаемой области, то оно автоматически переносится в начало следующей строки.
Оператор RTEXT может использоваться только в операторах DIALOG и WINDOW. Предопределенный класс для этого элемента управления WC_STATIC. Если не определено иное, то по умолчанию используются стили SS_TEXT, DT_RIGHT и WS_GROUP.

текст
текст, который будет расположен в прямоугольной области элемента управления и выравнен по правой границе.
Строка символов с кодами от 1 до 255, заключенная в двойные кавычки, или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("), то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\), то его тоже следует записать дважды.

идентификатор
идентификатор элемента управления.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

x
координаты левого нижнего угла элемента управления по оси X (т.е. по горизонтали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

y
координаты левого нижнего угла элемента управления по оси Y (т.е. по вертикали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

ширина
ширина элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

высота
высота элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

стиль
стиль элемента управления. Комбинация стилей с помощью операции логического ИЛИ (|), определенных для класса WC_STATIC. Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

Пример:

   RTEXT "Filename", 101, 10, 10, 100, 100

Создается прямоугольная область с выравненным справа текстом "Filename".

>>> Назад к оглавлению.


SLIDER

Синтаксис:

   SLIDER <идентификатор>, <x>, <y>, <ширина>, <высота>[, <стиль>]


Описание:

Оператор SLIDER создает линейный регулятор, позволяющий в аналоговом (графическом) виде задавать некоторые цифровые значения. Пользователь может изменять значение, передвигая движок регулятора.
Оператор SLIDER может использоваться только в операторах DIALOG и WINDOW. Предопределенный класс для этого элемента управления WC_SLIDER. Если не определено иное, то по умолчанию используются стили WS_TABSTOP и WS_VISIBLE.

идентификатор
идентификатор элемента управления.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

x
координаты левого нижнего угла элемента управления по оси X (т.е. по горизонтали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

y
координаты левого нижнего угла элемента управления по оси Y (т.е. по вертикали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

ширина
ширина элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

высота
высота элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

стиль
стиль элемента управления. Комбинация стилей с помощью операции логического ИЛИ (|), определенных для класса WC_SLIDER. Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

Пример:

   #define    IDC_SLIDER       101
   #define    IDD_SLIDERDLG    502
   DIALOG "Slider", IDD_SLIDERDLG, 11, 11, 200, 240, FS_NOBYTEALIGN |
          WS_VISIBLE, FCF_SYSMENU | FCF_TITLEBAR
   BEGIN
      SLIDER   IDC_SLIDER, 40, 30, 120, 16, SLS_BUTTONSLEFT | WS_VISIBLE
   END

Создается линейный регулятор с идентификатором 101.

>>> Назад к оглавлению.


SPINBUTTON

Синтаксис:

   SPINBUTTON <идентификатор>, <x>, <y>, <ширина>, <высота>[, <стиль>]

Описание:

Оператор SPINBUTTON создает переключатель барабанного типа, т.е. аналог вращающегося барабана, на который нанесены некоторые значения, которые демонстрируются в прозрачном окошке.
Оператор SPINBUTTON может использоваться только в операторах DIALOG и WINDOW. Предопределенный класс для этого элемента управления WC_SPINBUTTON. Если не определено иное, то по умолчанию используются стили SPBS_MASTER, WS_TABSTOP и WS_VISIBLE.

идентификатор
идентификатор элемента управления.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

x
координаты левого нижнего угла элемента управления по оси X (т.е. по горизонтали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

y
координаты левого нижнего угла элемента управления по оси Y (т.е. по вертикали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

ширина
ширина элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

высота
высота элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

стиль
стиль элемента управления. Комбинация стилей с помощью операции логического ИЛИ (|), определенных для класса WC_SPINBUTTON. Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

Пример:

   #define    IDC_SPINBUTTON   302
   #define    IDD_SPINDLG    502
   DIALOG "Spin button", IDD_SPINDLG, 11, 11, 200, 240, FS_NOBYTEALIGN |
          WS_VISIBLE, FCF_SYSMENU | FCF_TITLEBAR
   BEGIN
      SPINBUTTON  IDC_SPINBUTTON, 80, 20, 60, 24, SPBS_NUMERICONLY | WS_TABSTOP
   END

Создается барабанный переключатель с идентификатором 302.

>>> Назад к оглавлению.


STRINGTABLE

Синтаксис:

   STRINGTABLE [<опции загрузки>] [<опции памяти>] [<кодовая страница>]
   BEGIN
      <идентификатор> <текст>
      .
      .
      .
   END

Описание:

Оператор STRINGTABLE создает один или больше ресурсов строк для приложения. Ресурс строки - это текстовая строка, заканчивающаяся символом 0x00, имеющая уникальный идентификатор. Ресурс строки может быть загружен из исполняемого файла функцией WinLoadString.

В скрипт-файле можно определить любое количество операторов STRINGTABLE. Компилятор ресурсов соберет все строки из разных операторов STRINGTABLE и обработает их таким образом, как если бы они находились в одном операторе STRINGTABLE. Каждая строка должна иметь свой уникальный идентификатор.

опции загрузки
управляют загрузкой ресурса из исполняемого файла в память.

PRELOAD
система загружает ресурс во время загрузки приложения.
LOADONCALL
система загружает ресурс, когда приложение выполнит вызов функций DosGetResource или DosGetResource2.
Действует по умолчанию.

опции памяти
управляют размещением ресурса в памяти.

FIXED
система размещает ресурс в фиксированной области памяти.
MOVEABLE
система перемещает ресурс при необходимости в область хранения страниц на диске (своп). Действует по умолчанию.
DISCARDABLE
система освобождает ресурс, если он больше не нужен.

Замечание: опции FIXED и MOVEABLE не могут использоваться одновременно.

кодовая страница
идентификатор (номер) кодовой страницы.

идентификатор
идентификатор строки.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

текст
текстовая строка.
Строка символов с кодами от 1 до 255, заключенная в двойные кавычки, или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("), то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\), то его тоже следует записать дважды.

Комментарий:

При записи в скрипт-файле ресурсов строку можно прервать символом обратный слэш (\) и продолжить ее на следующей строке. Или закрыть ее символом двойные кавычки (") и продолжить на следующей строке, начав с символа двойные кавычки (").

Пример:

   #define IDS_HELLO    1
   #define IDS_GOODBYE  2

   STRINGTABLE
   BEGIN
      IDS_HELLO   "Hello"
      IDS_GOODBYE "Goodbye"
   END

Создается два ресурса строк с идентификаторами 1 и 2.

>>> Назад к оглавлению.


SUBITEMSIZE

Синтаксис:

   SUBITEMSIZE <значение>

Описание:

Оператор SUBITEMSIZE задает количество (в словах) данных, определяемых для каждого подпункта помощи в подтаблице помощи. Если оператор SUBITEMSIZE используется, то он должен располагаться после оператора HELPSUBTABLE и перед ключевым словом BEGIN.
По умолчанию используется значение равное 2.

значение
количество (в словах) данных, определяемых для каждого подпункта помощи в подтаблице помощи.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

Минимальное значение равно 2.

Пример:

   HELPSUBTABLE 1
   SUBITEMSIZE 3
   BEGIN
      HELPSUBITEM IDCLD_FILEMENU, IDHP_FILEMENU, 5
      HELPSUBITEM IDCLD_HELPMENU, IDHP_HELPMENU, 6
   END

Оператор SUBITEMSIZE определяет, что каждый подпункт помощи содержит три слова данных.

>>> Назад к оглавлению.


SUBMENU

Синтаксис:

   SUBMENU <текст>, <идентификатор>[ ,<стиль>]
   BEGIN
      <определения пунктов меню>
      .
      .
      .
   END

Описание:

Оператор SUBMENU создает подменю в данном меню. Подменю - это вертикальный выпадающий список именованных команд.

В операторе MENU. можно определить любое количество операторов SUBMENU. Каждый оператор должен иметь уникальный идентификатор. В каждом подменю можно определить любое количество операторов, описывающих пункты меню (команды) и подменю. Порядок следования операторов определяет порядок следования пунктов меню.

текст
название подменю, отображаемое как пункт в меню верхнего уровня.
Строка символов с кодами от 1 до 255, заключенная в двойные кавычки, или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("), то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\), то его тоже следует записать дважды.

Текст может содержать управляющие символы:

идентификатор
идентификатор подменю.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

стиль
стиль подменю. Комбинация стилей с помощью операции логического ИЛИ (|). Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

определения пунктов меню
задаются операторами MENUITEM или SUBMENU, определяющими индивидуальные команды или подменю в данном подменю. Оператор PRESPARAMS позволяет определить внешний вид меню, т.е. цветовое оформление и фонты.

Пример:

   SUBMENU "Elements", 2
   BEGIN
      MENUITEM "Oxygen", 200
      MENUITEM "Carbon", 201, , MIA_CHECKED
      MENUITEM "Hydrogen", 202
   END

Создается подменю с идентификатором 2, содержащее пункты подменю "Oxygen", "Carbon" и "Hydrogen". В меню верхнего уровня подменю выглядит как пункт меню "Elements".

>>> Назад к оглавлению.


VALUESET

Синтаксис:

   VALUESET <идентификатор>, <x>, <y>, <ширина>, <высота>[, <стиль>]

Описание:

Оператор VALUESET создает набор значений, функционально подобный радиокнопкам, но предоставляющий большую гибкость отображения графической, текстовой и цифровой информации.
Оператор VALUESET может использоваться только в операторах DIALOG и WINDOW. Предопределенный класс для этого элемента управления WC_VALUESET. Если не определено иное, то по умолчанию используются стили WS_TABSTOP и WS_VISIBLE.

идентификатор
идентификатор элемента управления.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

x
координаты левого нижнего угла элемента управления по оси X (т.е. по горизонтали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

y
координаты левого нижнего угла элемента управления по оси Y (т.е. по вертикали), относительно родительского окна (экрана, окна, диалога или элемента управления).
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

ширина
ширина элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

высота
высота элемента управления.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

стиль
стиль элемента управления. Комбинация стилей с помощью операции логического ИЛИ (|), определенных для класса WC_VALUESET. Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

Пример:

   #define    IDC_VALUESET     302
   #define    IDD_VALUESETDLG  501
   DIALOG "Value set", IDD_VALUESETDLG, 11, 11, 260, 240, FS_NOBYTEALIGN |
          WS_VISIBLE, FCF_SYSMENU | FCF_TITLEBAR
   BEGIN
      VALUESET  IDC_VALUESET, 40, 40, 220, 160, VS_ICON | WS_TABSTOP
   END

Создается набор значений, отображаемый иконками, с идентификатором 302.

>>> Назад к оглавлению.


WINDOW

Синтаксис:

   WINDOW <текст>, <идентификатор>, <x>, <y>, <ширина>, <высота>, <класс>[, <стиль>[, <флаги>]]
   [ <определения данных>]
   [ BEGIN
        <определения дочерних элементов>
        .
        .
        .
     END ]

Описание:

Оператор WINDOW создает окно указанного класса. Оператор WINDOW наиболее часто используется в операторах WINDOWTEMPLATE и FRAME.

Обычно, в каждом операторе FRAME используется только один оператор WINDOW. Он определяет клиентское окно для данного фрейма. Дочерние элементы управления для этого окна определяются операторами CONTROL и должны располагаться между необязательными операторами BEGIN и END.

текст
текст в заголовке окна, если определена полоса заголовка.
Строка символов с кодами от 1 до 255, заключенная в двойные кавычки, или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("), то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\), то его тоже следует записать дважды.

идентификатор
идентификатор окна.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

x
координаты левого нижнего угла окна по оси X (т.е. по горизонтали), относительно родительского окна.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

y
координаты левого нижнего угла окна по оси Y (т.е. по вертикали), относительно родительского окна.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

ширина
ширина окна.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

высота
высота окна.
Целое число от 0 до 65535 или простое выражение, имеющее результатом число в указанных границах.

класс
класс окна. Это может быть один из предопределенных классов окон (WC_*) или имя пользовательского класса окон, заключенное в двойные кавычки (").

стиль
стиль окна. Комбинация стилей с помощью операции логического ИЛИ (|), определенных для окон, диалогов, фреймов и/или предопределенных классов окон. Если требуется отключить стиль, используемый по умолчанию, то применяется операция логического отрицания (NOT).

флаги
флаги создания фрейма. Комбинация флагов с помощью операции логического ИЛИ (|). Если требуется отключить флаг, используемый по умолчанию, то применяется операция логического отрицания (NOT).

определения данных
набор операторов CTLDATA и/или PRESPARAMS. Эти операторы описывают управляющие данные для окна.

определения дочерних элементов
набор операторов, описывающих элементы управления предопределенных типов, или операторов CONTROL.

Комметарий:

Оператор WINDOW может содержать любую комбинацию операторов CONTROL, DIALOG и WINDOW. Но, обычно оператор WINDOW не содержит этих операторов.

Пример:

   WINDOWTEMPLATE 1
   BEGIN
      FRAME "My Window", 1, 10, 10, 320, 130,
            0, FCF_STANDARD | FCF_VERTSCROLL
      BEGIN
         WINDOW "", FID_CLIENT, 0, 0, 0, 0, "MyClientClass"
      END
   END

Создается клиентское окно фрейма с заголовком "My Window" класса "MyClientClass" с идентификатором FID_CLIENT.

>>> Назад к оглавлению.


WINDOWTEMPLATE

Синтаксис:

   WINDOWTEMPLATE <идентификатор> [<опции загрузки>] [<опции памяти>] [<кодовая страница>]
   BEGIN
      <определения дочерних окон>
      .
      .
      .
   END

Описание:

Оператор WINDOWTEMPLATE создает шаблон окна. Шаблон окна содержит набор операторов, определяющих размеры и положение окна и дочерних элементов управления. Шаблон окна может быть загружен из исполняемого файла функцией WinLoadDlg.

В скрипт-файле можно определить любое количество операторов WINDOWTEMPLATE. Каждый оператор должен иметь уникальный идентификатор.

идентификатор
идентификатор окна.
Целое число от -32768 до 32767 или простое выражение, имеющее результатом число в указанных границах.

опции загрузки
управляют загрузкой ресурса из исполняемого файла в память.

PRELOAD
система загружает ресурс во время загрузки приложения.
LOADONCALL
система загружает ресурс, когда приложение выполнит вызов функций DosGetResource или DosGetResource2.
Действует по умолчанию.

опции памяти
управляют размещением ресурса в памяти.

FIXED
система размещает ресурс в фиксированной области памяти.
MOVEABLE
система перемещает ресурс при необходимости в область хранения страниц на диске (своп). Действует по умолчанию.
DISCARDABLE
система освобождает ресурс, если он больше не нужен.

Замечание: опции FIXED и MOVEABLE не могут использоваться одновременно.

кодовая страница
идентификатор (номер) кодовой страницы

определения дочерних окон
оператор WINDOW, определяющий размеры и стиль заданного окна.

Комметарий:

Оператор WINDOWTEMPLATE может содержать любую комбинацию операторов CONTROL, DIALOG и WINDOW. Но, обычно оператор WINDOWTEMPLATE содержит только один оператор WINDOW.

Пример:

   WINDOWTEMPLATE 1
   BEGIN
      FRAME "My Window", 1, 10, 10, 320, 130,
            0, FCF_STANDARD | FCF_VERTSCROLL
      BEGIN
         WINDOW "", FID_CLIENT, 0, 0, 0, 0, "MyClientClass"
      END
   END

>>> Назад к оглавлению.


Сообщения об ошибках

Сообщения об фатальных ошибках препроцессора компилятора ресурсов:
C1012: bad parenthesis nesting - missing symbol
Объяснение: круглые скобки в выражении несбалансированы, т.е. число левых скобок не равно числу правых скобок.
Действие: перепишите выражение так, чтобы соблюдался баланс круглых скобок.
C1014: too many include files
Объяснение: возможно попытка рекурсивного включения файлов директивой #include.
Действие: удалите директиву #include, указывающую на файл, который уже включен препроцессором.
C1015: cannot open include file 'filename'
Объяснение: препроцессор не нашел указанный файл, определенный в директиве #include.
Действие: если файл не находится в текущем каталоге или в одном из каталогов, перечисленных в переменной окружения INCLUDE или заданных опциями -i, то укажите полный путь к этому файлу.
C1016: #if[n]def expected an identifier
Объяснение: в директиве #ifdef или #ifndef не указано имя макропеременной.
Действие: впишите пропущенное имя.
C1017: invalid integer constant expression
Объяснение: ошибка в выражении, которое должно содержать целочисленные константы.
Действие: запишите выражение в правильной форме.
C1018: unexpected #elif
Объяснение: директива #elif используется в неправильном контексте.
Действие: исправьте логику блока условной компиляции, начинающегося с соответствующей директивы #if.
C1019: unexpected #else
Объяснение: директива #else используется в неправильном контексте.
Действие: исправьте логику блока условной компиляции, начинающегося с соответствующей директивы #if.
C1020: unexpected #endif
Объяснение: директива #endif используется в неправильном контексте.
Действие: исправьте логику блока условной компиляции, начинающегося с соответствующей директивы #if.
C1021: bad preprocessor command 'command'
Объяснение: указанная команда не является директивой препроцессора.
Действие: запишите директиву в правильной форме.
C1022: expected #endif
Объяснение: пропущена директива #endif, закрывающая блок условной компиляции, начинающегося с директивы #if.
Действие: добавьте пропущенную директиву #endif.
C1056: compiler limit 'name' out of macro expansion space
Объяснение: указанная макропеременная заменяется значением, длина которого превышает 2042 байта.
Действие: пересмотрите определения макропеременных так, чтобы их значения имели длину меньше 2042 байт.
C1065: compiler limit 'name' macro definition too big
Объяснение: указанная макропеременная заменяется значением, длина которого превышает 2042 байта.
Действие: пересмотрите определения макропеременных так, чтобы их значения имели длину меньше 2042 байт.

Сообщения об ошибках препроцессора компилятора ресурсов:

C2001: newline in constant
Объяснение: строчная константа не закрыта двойными кавычками.
Действие: добавьте пропущенные двойные кавычки, закрывающие строку.
C2004: expected defined(id)
Объяснение: в директиве #if defined пропущено имя макропеременной.
Действие: впишите пропущенное имя.
C2006: #include expected a file name,found text
Объяснение: в директиве #include указан некоторый текст вместо имени файла.
Действие: запишите имя файла в правильной форме.
C2007: #define syntax
Объяснение: неправильный синтаксис директивы #define.
Действие: запишите директиву #define в правильной форме.
C2014: preprocessor command must start as first non-white space
Объяснение: в строке, содержащей директиву, находится некоторый текст перед знаком (#).
Действие: запишите директиву так, чтобы перед ней не было никаких символов, за исключением пробелов.

Сообщения о предупреждениях препроцессора компилятора ресурсов:

C4005: name redefinition
Объяснение: повторное определение имени макропеременной, т.е. директива #define определяет уже существующую макропеременную.
Действие: удалите лишнюю директиву #define или исправьте имя макропеременной.
C4067: unexpected characters following '#include' directive - newline expected
Объяснение: в директиве #include указано имя файла, не заключенное в двойные кавычки или угловые скобки.
Действие: заключите имя файла в директиве #include в двойные кавычки или угловые скобки.
C4067: unexpected characters following '#endif' directive - newline expected
Объяснение: следом за директивой #endif в той же строке не должно быть никаких символов, за исключением пробелов.
Действие: удалите лишние символы.
C4067: unexpected characters following '#else' directive - newline expected
Объяснение: следом за директивой #else в той же строке не должно быть никаких символов, за исключением пробелов.
Действие: удалите лишние символы.
C4067: unexpected characters following '#undef' directive - newline expected
Объяснение: директивой #undef можно удалить только одно макроопределение.
Действие: используйте отдельные директивы #undef для удаления каждого макроопределения.

Сообщения об ошибках компилятора ресурсов:

Accelerator type required (CHAR, SCANCODE, or VIRTUALKEY)
Объяснение: не указано значение в поле опции акселератора для записи таблицы акселераторов, требующей обязательного определения типа. Если в качестве кода символа акселератора указано значение, отличное от единичного символа, или символу-акселератору предшествует символ (^), то обязательно требуется определение типа.
Действие: проверьте синтаксис таблицы акселераторов.
BEGIN expected in accelerator table
Объяснение: в таблице акселераторов отсутствует ключевое слово BEGIN.
Действие: проверьте синтаксис.
BEGIN expected in dialog or window template
Объяснение: в шаблоне диалога или окна отсутствует ключевое слово BEGIN.
Действие: проверьте синтаксис.
BEGIN expected in menu
Объяснение: в меню отсутствует ключевое слово BEGIN.
Действие: проверьте синтаксис.
BEGIN expected in message table
Объяснение: в таблице сообщений отсутствует ключевое слово BEGIN.
Действие: проверьте синтаксис.
BEGIN expected in RCDATA
Объяснение: в таблице RCDATA отсутствует ключевое слово BEGIN.
Действие: проверьте синтаксис.
BEGIN expected in string table
Объяснение: в таблице строк отсутствует ключевое слово BEGIN.
Действие: проверьте синтаксис.
Cannot re-use message constants
Объяснение: идентификатор сообщения используется больше одного раза в таблице сообщений.
Действие: проверьте синтаксис таблицы сообщений.
Cannot re-use string constants
Объяснение: идентификатор строки используется больше одного раза в таблице строк.
Действие: проверьте синтаксис таблицы строк.
Comma expected after item string
Объяснение: идентификатор пункта меню должен отделяться запятой от текста пункта меню.
Действие: проверьте синтаксис меню.
Control character out of range ( ^A - ^Z)
Объяснение: символ-акселератор, в записи которого символ (^) предшествует коду символа, что означает, что символ-акселератор используется совместно с клавишей CTRL, должен быть алфавитным символом.
Действие: проверьте синтаксис таблицы акселераторов.
END expected in dialog
Объяснение: в шаблоне диалога отсутствует ключевое слово END.
Действие: проверьте синтаксис.
END expected in menu
Объяснение: в меню отсутствует ключевое слово END.
Действие: проверьте синтаксис.
Error creating temp file
Объяснение: временный файл, создаваемый компилятором ресурсов во время компиляции, не может быть создан.
Действие: проверьте достаточно ли места на диске и повторите запуск компилятора ресурсов.
Expected comma in accelerator table
Объяснение: запятая в таблице акселераторов должна отделять поля акселератора, команды и опций.
Действие: проверьте синтаксис таблицы акселераторов.
Expected ID value for menu item
Объяснение: пропущен идентификатор пункта меню.
Действие: проверьте синтаксис меню.
Expected menu string
Объяснение: пропущено поле текст, задающее название пункта меню.
Действие: проверьте синтаксис меню. Строка текста должна быть заключена в двойные кавычки (").
Expected numeric command value
Объяснение: отсутствует числовая константа, идентифицирующая сообщение, которое генерирует клавиша-акселератор.
Действие: проверьте синтаксис таблицы акселераторов.
Expected numeric constant in message table
Объяснение: идентификатор сообщения должен быть числовым.
Действие: проверьте синтаксис таблицы сообщений.
Expected numeric constant in string table
Объяснение: идентификатор строки должен быть числовым.
Действие: проверьте синтаксис таблицы строк.
Expected numerical dialog constant
Объяснение: координаты и размеры диалогового окна должны быть числовыми.
Действие: проверьте синтаксис диалогового окна.
Expected string in message table
Объяснение: не найдена текстовая строка в таблице сообщений.
Действие: проверьте синтаксис. Строка должна быть заключена в двойные кавычки (").
Expected string in string table
Объяснение: не найдена текстовая строка в таблице строк.
Действие: проверьте синтаксис. Строка должна быть заключена в двойные кавычки (").
Expected string or constant accelerator command
Объяснение: пропущен код символа-акселератора.
Действие: проверьте синтаксис таблицы акселераторов.
File not found
Объяснение: не найден указанный .RC или .RES файл.
Действие: проверьте наличие файла в текущем каталоге или проверьте путь в каталогу с файлом.
Illegal empty BEGIN/END block found, resource not written
Объяснение: блок BEGIN/END в шаблоне диалога не содержит операторов DIALOG, CONTROL, WINDOW или операторов предопределенных классов окон.
Действие: удалите ненужный блок BEGIN/END.
Invalid accelerator
Объяснение: неправильный код клавиши акселератора.
Действие: проверьте синтаксис определения клавиши акселератора.
Invalid accelerator option
Объяснение: неправильная опция акселератора.
Действие: проверьте синтаксис.
Invalid control character
Объяснение: определение клавиши акселератора может включать символ (^), задающий использование этой клавиши совместно с клавишей CTRL.
Действие: проверьте синтаксис определения клавиши акселератора.
Invalid Type
Объяснение: тип ресурса задан неправильным ключевым словом.
Действие: проверьте синтаксис определения ресурса.
Non-numeric template ID in dialog or window template
Объяснение: идентификатор должен быть числовым.
Действие: проверьте синтаксис определения шаблона диалога или окна.
Only one top level window allowed
Объяснение: в шаблоне диалога или окна можно использовать только один оператор DIALOG, CONTROL или WINDOW вне блока BEGIN/END.
Действие: проверьте синтаксис определения шаблона диалога или окна.
Resource Type keyword expected
Объяснение: тип ресурса должен быть определен в скрипт-файле ресурсов.
Действие: проверьте синтаксис определения ресурса.
String literal too long
Объяснение: строка не может быть длиннее 255 байт.
Действие: Отредактируйте строку.
Text string or ordinal expected in control
Объяснение: в операторе DIALOG отсутствует текст, задающий заголовок окна. Даже если заголовок не требуется, текст все равно должен быть определен и может быть задан пустой строкой ("").
Действие: исправьте оператор DIALOG.
Unbalanced parentheses
Объяснение: количество левых скобок не равно количеству правых.
Действие: исправьте выражение.
Undefined keyword or key name
Объяснение: использовано несуществующее ключевое слово или имя.
Действие: проверьте синтаксис.
Unexpected end of file in string literal
Объяснение: двойные кавычки отсутствуют в конце символьной строки.
Действие: исправьте строку.
Unexpected value in RCData
Объяснение: значения в операторе RCDATA должны быть текстовыми строками или числами.
Действие: проверьте синтаксис оператора RCDATA.
Unknown dialog or window token
Объяснение: шаблон диалога или окна может содержать только операторы DIALOG, CONTROL, WINDOW или операторы предопределенных классов окон.
Действие: проверьте синтаксис шаблона диалога или окна.
Unknown menu sub type
Объяснение: пункты меню можно определять только операторами MENUITEM и SUBMENU.
Действие: проверьте синтаксис определения меню.

>>> Назад к оглавлению.


Приложения

>>> Назад к оглавлению.


Стандартные стили окон

Следующие стандартные стили используются при создании окон любого класса:
WS_CLIPCHILDREN
область, занимаемая дочерними окнами данного окна, не перерисовывается. Этот стиль увеличивает время вычисления видимого региона. Обычно он не используется, т.к. если родительское и дочернее окна перекрываются и оба нуждаются в перерисовке, то система перерисовывает сначала родительское окно, а затем дочернее. Если дочернее окно будет нуждаться в перерисовке независимо от родительского, то система перерисовывает только дочернее окно. Если изменяемый регион родительского окна не пересекается с дочерним окном, то, обычно, перерисовка родительского окна все же вызывает перерисовку и дочернего окна. Использование же стиля WS_CLIPCHILDREN позволяет запретить перерисовку дочернего окна в таких случаях. Особенно это важно, если дочернее окно содержит большое количество комплексной графической информации, требующей значительных ресурсов для перерисовки. Стиль WS_CLIPCHILDREN абсолютно необходим для родительских окон, выполняющих вывод в ответ на любое другое сообщение, отличное от WM_PAINT. Только обработка сообщения WM_PAINT синхронизирована так, что дочернее окно получает его после родительского.

WS_CLIPSIBLING
подавляет перерисовку дочерних окон, имеющих общего родителя, одного внутри другого, если дочерние окна перекрывают друг друга. Этот стиль увеличивает время расчета видимой области, но может обойти перерисовку сложных дочерних окон.

WS_DISABLED
создает отключенное (заблокированное) окно, т.е. окно, ввод в которое невозможен.

WS_GROUP
отмечает группу элементов управления, по которой пользователь может перемещаться, используя клавиши управления курсором. Указывается у первого элемента в группе. Следующий элемент управления, имеющий этот стиль, завершает предыдущую группу и начинает следующую.

WS_MAXIMIZED
создает максимизированное окно.

WS_MINIMIZED
создает минимизированное окно.

WS_PARENTCLIP
расширяет видимый регион окна до размеров родительского окна. Этот стиль упрощает расчет видимого региона дочерних окон, но потенциально опасен, т.к. видимый регион родительского окна обычно больше дочернего.

WS_SAVEBITS
сохраняет содержимое области экрана, где располагается окно, в виде растра (bitmap); когда пользователь прячет или перемещает окно, система восстанавливает содержимое экрана из растра (bitmap); таким образом, нет необходимости добавлять область, ранее закрытую этим окном, в изменяемый регион перекрытых окон. Этот стиль повышает производительность системы, но требует значительных затрат памяти. Он рекомендуется только для короткоживущих окон, таких как меню и диалоги, но не для основных окон приложения.

WS_SYNCPAINT
окно будет получать сообщение WM_PAINT немедленно, как только хотя бы часть окна потребует перерисовки. Если стиль не указан, то окно получит сообщение WM_PAINT только тогда, когда в очереди не будет других сообщений.

WS_TABSTOP
может быть указан у любого числа элементов управления. Пользователь может переключаться между элементами управления, имеющими этот стиль, с помощью клавиши TAB.

WS_VISIBLE
создает видимое окно. Операционная система прорисовывает окно на экране, если только перекрывающие окна не скрывают его полностью. Если стиль отсутствует, то создается скрытое окно. Окно считается видимым, даже если перекрывающие окна его полностью скрывают. Под видимостью понимается то, что система прорисовывает окно, когда может это сделать.

Предопределенные классы окон дополнительно используют собственные стили.

>>> Назад к оглавлению.


Предопределенные классы окон

OS/2 предоставляет разработчику возможность использовать следующие предопределенные классы окон:
WC_BUTTON
кнопки и переключатели, состояние которых пользователь может изменить с помощью мыши или клавиатуры.

WC_CIRCULARSLIDER
круговой регулятор, позволяющий в аналоговом (графическом) виде задавать некоторые цифровые значения. Смотри также WC_SLIDER.

WC_COMBOBOX
комбинированный элемент управления, состоящий из списка и поля ввода. Он позволяет пользователю ввести данные, либо набрав их в поле ввода, либо выбрав из списка.

WC_CONTAINER
контейнер, позволяющий пользователю сгруппировать объекты в логической манере. Контейнер может отображать эти объекты в различных видах и форматах. Контейнер поддерживает технологию drag-and-drop, для помещения объекта в контейнер пользователь может просто подцепить нужный объект и сбросить его в контейнер.

WC_ENTRYFIELD
одиночная текстовая строка, которую пользователь может редактировать.

WC_FRAME
комбинированный класс окон, содержащий дочерние окна многих других классов окон.
Смотри также флаги создания фрейма и идентификаторы окон фрейма.

WC_LISTBOX
список, состоящий из текстовых строк, из которых пользователь может сделать выбор.

WC_MENU
меню, которое может представляться как горизонтальный набор пунктов, так и как вертикальный выпадающий список пунктов меню. Обычно меню используется для управления режимами работы приложения.
Смотри также стили пунктов меню и атрибуты пунктов меню.

WC_MLE
набор текстовых строк, которые пользователь может редактировать.

WC_NOTEBOOK
блокнот, т.е. набор страничек с названиями на закладках. Текущая страничка видна, остальные скрыты, но закладки видны и позволяют быстро выбрать соответствующую страничку.

WC_SCROLLBAR
полоса прокрутки, позволяющая пользователю прокрутить содержимое связанного окна.

WC_SLIDER
линейный регулятор, позволяющий в аналоговом (графическом) виде задавать некоторые цифровые значения. Для этих целей может использоваться и полоса прокрутки, но линейный регулятор предоставляет более гибкий метод достижения результатов с меньшими затратами на программирование.

WC_SPINBUTTON
переключатель барабанного типа, т.е. аналог вращающегося барабана, на который нанесены некоторые значения, которые демонстрируются в прозрачном окошке. Т.к. пользователь в каждый момент видит только одно значение, то этот тип переключателя должен использоваться для выбора данных, которые интуитивно связаны.

WC_STATIC
простой отображаемый элемент, который не отвечает на выбор его мышью или с помощью клавиатуры.
Смотри также флаги форматирования текста.

WC_TITLEBAR
отображает заголовок окна и позволяет пользователю перемещать окно.

WC_VALUESET
набор значений, функционально подобный радиокнопкам, но предоставляющий большую гибкость отображения графической, текстовой и цифровой информации. Значения в этом наборе - взаимоисключающие.

>>> Назад к оглавлению.


WC_BUTTON

Класс WC_BUTTON создает кнопки и переключатели, состояние которых пользователь может изменить с помощью мыши или клавиатуры.

Создавая окна этого класса, можно использовать следующие стили:

BS_3STATE
создает переключатель на три положения (см. также BS_CHECKBOX). Когда пользователь выбирает переключатель, то сообщение WM_CONTROL отправляется владельцу окна. Владелец окна должен установить переключатель в одно из трех состояний: выбран, невыбран или полутон.

BS_AUTO3STATE
создает автоматический переключатель на три положения (см. также BS_CHECKBOX). Когда пользователь выбирает переключатель, то система автоматически устанавливает переключатель в одно из трех состояний: выбран, невыбран или полутон.

BS_AUTOCHECKBOX
создает автоматический переключатель на два положения (см. также BS_CHECKBOX). Когда пользователь выбирает переключатель, то система автоматически устанавливает переключатель в одно из двух состояний: выбран или невыбран.

BS_AUTORADIOBUTTON
создает автоматическую радиокнопку (см. также BS_RADIOBUTTON). Когда пользователь выбирает радиокнопку, то система автоматически выбирает указанную кнопку и сбрасывает состояние выбора со всех остальных радиокнопок в той же группе.

BS_AUTOSIZE
создает кнопку или переключатель, размеры которых автоматически устанавливаются так, чтобы текст всегда умещался на созданной кнопке.

Замечание: параметрам cx и cy функции WinCreateWindow (или соответствующим параметрам оператора ресурсов) должны быть присвоены значения -1, чтобы могла отработать функция автоматического изменения размера.

BS_BITMAP
создает нажимную кнопку, содержащую растровое изображение вместо текста. Этот стиль может использоваться только вместе со стилем BS_PUSHBUTTON.

Замечание: в качестве параметра pszName функции WinCreateWindow (или параметра текст оператора ресурсов) должна использоваться ASCII-нотация идентификатора соответствующего bitmap-ресурса, т.е. строка, начинающаяся с символа (#), и следующим за ним текстовым представлением идентификатора. Например, если bitmap-ресурс имеет идентификатор 401, то ASCII-нотация будет представляться строкой "#401".

BS_CHECKBOX
создает переключатель на два положения в виде небольшого квадратика и текста, расположенного справа от него. Когда пользователь выбирает переключатель, то сообщение WM_CONTROL отправляется владельцу окна. Владелец окна должен установить переключатель в одно из двух состояний: выбран или невыбран.

BS_DEFAULT
создает нажимную кнопку, окруженную толстым черным бордюром. Пользователь может выбрать эту кнопку, нажав клавишу "пробел". Это позволяет обеспечить быстрый доступ к наиболее часто используемой нажимной кнопке в диалоге. Этот стиль может использоваться только вместе со стилем BS_PUSHBUTTON.

BS_HELP
создает нажимную кнопку, которая посылает своему владельцу сообщение WM_HELP (а не WM_COMMAND), когда пользователь выбирает эту кнопку. Этот стиль может использоваться только вместе со стилем BS_PUSHBUTTON.

BS_ICON
создает нажимную кнопку, содержащую иконку вместо текста (см. также BS_BITMAP).

BS_MINIICON
создает нажимную кнопку, содержащую минииконку вместо текста (см. также BS_BITMAP).

BS_NOBORDER
создает нажимную кнопку, не имеющую бордюра. Этот стиль может использоваться только вместе со стилем BS_PUSHBUTTON.

BS_NOCURSORSELECT
создает автоматическую радиокнопку, которая не будет автоматически выбираться, когда пользователь передвигается по кнопкам, используя клавиши управления курсором. Этот стиль может использоваться только вместе со стилем BS_AUTORADIOBUTTON.

BS_NOPOINTERFOCUS
создает радиокнопку или переключатель, на который не устанавливается клавиатурный фокус, когда пользователь выбирает его. Этот стиль может использоваться только вместе со стилями BS_AUTORADIOBUTTON, BS_RADIOBUTTON, BS_AUTO3STATE, BS_3STATE, BS_AUTOCHECKBOX или BS_CHECKBOX.

BS_PUSHBUTTON
создает прямоугольную нажимную кнопку с текстом на ней. Когда пользователь выбирает эту кнопку, то сообщение WM_COMMAND отправляется владельцу окна.

BS_RADIOBUTTON
создает радиокнопку в виде небольшого кружка и текста, расположенного справа от него. Радиокнопки обычно используются в группе, когда требуется выбрать из зависимых друг от друга, но взаимоисключающих опций. Когда пользователь выбирает радиокнопку, то сообщение WM_CONTROL отправляется владельцу окна. Владелец окна должен выбрать указанную кнопку и сбросить состояние выбора со всех остальных радиокнопок в той же группе.

BS_SYSCOMMAND
создает нажимную кнопку, которая посылает своему владельцу сообщение WM_SYSCOMMAND (а не WM_COMMAND), когда пользователь выбирает эту кнопку. Этот стиль может использоваться только вместе со стилем BS_PUSHBUTTON.

BS_TEXT
создает нажимную кнопку, содержащую иконку или минииконку и текст одновременно (см. также BS_BITMAP). Текст, отображаемый на кнопке, должен следовать за ASCII-нотацией идентификатора ресурса иконки, и отделяться от нее символом табуляции (\t или \x09), например, "#401\tВыход" или "#401\x09Выход".

BS_USERBUTTON
создает кнопку, определяемую пользователем. Владельцу окна будут отправляться сообщения WM_CONTROL, когда требуется нарисовать, подсветить или отключить кнопку. Когда пользователь выбирает эту кнопку, то сообщение WM_COMMAND отправляется владельцу окна.

>>> Назад к оглавлению.


WC_CIRCULARSLIDER

Класс WC_CIRCULARSLIDER создает круговой регулятор, позволяющий в аналоговом (графическом) виде задавать некоторые цифровые значения.

Создавая окна этого класса, можно использовать следующие стили:

CCS_360
регулятор, вращающийся на 360 градусов. Одновременно устанавливает стиль CSS_NONUMBER, что предохраняет индикатор значения от показа неправильных значений.

CCS_CIRCULARVALUE
вместо риски на ручке изображается круглая метка.

CCS_MIDPOINT
начальная и конечная риски регулятора изображаются увеличенными.

CCS_NOBUTTON
не отображаются кнопки [+] и [-], вращающие регулятор.

CCS_NONUMBER
цифровое значение не отображается на регуляторе.

CCS_NOTEXT
не отображается подпись под регулятором.

CCS_POINTSELECT
после щелчка мыши регулятор сразу поворачивается в позицию, на которую установлен указатель мыши. Обычным способом управления является плавное вращение регулятора.

CCS_PROPORTIONALTICKS
длина рисок на шкале регулятора вычисляется как процент от радиуса регулятора.

>>> Назад к оглавлению.


WC_COMBOBOX

Класс WC_COMBOBOX создает комбинированный элемент управления, состоящий из списка и поля ввода. Он позволяет пользователю ввести данные, либо набрав их в поле ввода, либо выбрав из списка.

Создавая окна этого класса, можно использовать следующие стили:

CBS_SIMPLE
создает простой комбинированный элемент управления, который одновременно отображает и поле ввода, и список. Пользователь может ввести и отредактировать текст в поле ввода или выбрать его в списке.

CBS_DROPDOWN
создает комбинированный элемент управления, который обычно отображает только поле ввода. Список выпадает только тогда, когда пользователь щелкнет по иконке справа от поля ввода. Список прячется, если пользователь щелкнет по иконке еще раз или выберет элемент в списке. Пользователь может ввести и отредактировать текст в поле ввода или выбрать его в списке.

CBS_DROPDOWNLIST
создает такой же комбинированный элемент, как и стиль CBS_DROPDOWN, за одним исключением. Пользователь не может вводить и редактировать данные в поле ввода, а может только выбрать элемент списка.

>>> Назад к оглавлению.


WC_CONTAINER

Класс WC_CONTAINER создает контейнер, позволяющий пользователю сгруппировать объекты в логической манере. Контейнер может отображать эти объекты в различных видах и форматах. Контейнер поддерживает технологию drag-and-drop, для помещения объекта в контейнер пользователь может просто подцепить нужный объект и сбросить его в контейнер.

Создавая окна этого класса, можно использовать следующие стили:

CCS_AUTOPOSITION
автоматическое позиционирование, в случае, если объекты в контейнере отображаются в виде иконок, то их расположение упорядочивается, если происходит одно из следующих событий:

CCS_MINIRECORDCORE
использование структуры MINIRECORDCORE вместо RECORDCORE для хранения записей объектов контейнера.

CCS_READONLY
только чтение, запрещает редактирование любых текстов в контейнере.

CCS_VERIFYPOINTERS
проверка подтверждения того, что указатели приложения являются членами связного списка контейнера, перед их использованием.

CCS_SINGLESEL
единичный выбор, позволяет пользователю выбрать только один объект в контейнере за один раз. Каждый раз, как только пользователь выбирает объект, с остальных объектов сбрасывается признак выбора.

CCS_EXTENDSEL
расширенный выбор, позволяет пользователю выбрать один или несколько объектов в контейнере за один раз. Пользователь может выбрать один объект, несколько разрозненных объектов или последовательности объектов в различных границах.

CCS_MULTIPLESEL
множественный выбор, позволяет пользователю выбрать один или несколько объектов в контейнере за один раз или не выбрать ни одного объекта.

>>> Назад к оглавлению.


WC_ENTRYFIELD

Класс WC_ENTRYFIELD создает одиночную текстовую строку, которую пользователь может редактировать.

Создавая окна этого класса, можно использовать следующие стили:

ES_ANY
позволяет смешивать символы SBCS и DBCS.

ES_AUTOSCROLL
автоматически горизонтально прокручивает текст, если он не влезает в окно, при перемещении курсора.

ES_AUTOSIZE
автоматически устанавливает размер окна, базируясь на заданной длине текстовой строки и метриках текущего системного фонта. Этот стиль может автоматически устанавливать ширину окна, высоту окна или оба этих параметра одновременно, если соответствующие параметры функции WinCreateWindow или операторов ресурсов имеют значение -1. Размеры окна устанавливаются автоматически только для начальной строки в поле ввода; размеры окна не изменяются, если меняется фонт или длина строки во время редактирования.

ES_AUTOTAB
автоматически переключает курсор на следующий элемент управления, если пользователь введет заданное максимально возможное количество символов.

ES_CENTER
центрует текст.

ES_DBCS
поле ввода может содержать только символы DBCS.

ES_LEFT
выравнивает текст по левой границе окна.

ES_MARGIN
рисует вокруг поля ввода бордюр шириной 1/2 символа и высотой 1/4 символа. Если стиль не указан бордюр не рисуется. Ширина окна поля ввода увеличивается с каждой стороны на величину этого бордюра. Соответственно, функция WinQueryWindowRect будет возвращать большие размеры окна, чем задано при создании, поскольку окно будет включать в себя бордюр. Если приложение не будет учитывать эту разницу при перемещении или изменении размеров окна, то поле ввода будет увеличиваться при каждом перемещении или изменении размеров окна.

ES_MIXED
позволяет смешивать символы SBCS и DBCS. В отличие от стиля ES_ANY этот стиль позволяет конвертировать символы ASCII DBCS в символы EBCDIC DBCS без возникновения состояния переполнения.

ES_READONLY
только чтение, запрещает вводить и редактировать текст в поле ввода.

ES_RIGHT
выравнивает текст по правой границе окна.

ES_SBCS
поле ввода может содержать только символы SBCS.

ES_UNREADABLE
вместо вводимых символов отображает символ звездочка (*). Обычно применяется при вводе паролей.

>>> Назад к оглавлению.


WC_FRAME

Класс WC_FRAME создает комбинированный класс окон, содержащий дочерние окна многих других классов окон.

Создавая окна этого класса, можно использовать следующие стили:

FS_AUTOICON
в минимизированном состоянии система не посылает приложению сообщение WM_PAINT, а только перерисовывает иконку. Это повышает производительность системы.

FS_BORDER
бордюр в виде тонкой рамки.

FS_DLGBORDER
бордюр, используемый для диалоговых окон.

FS_MOUSEALIGN
указанные координаты задают расположение диалогового окна относительно положения указателя мыши в момент создания. Если возможно, операционная система старается разместить диалог так, чтобы он полностью помещался на экране.

FS_NOBYTEALIGN
не выполняется выравнивание структур окна на границу байта. Это может привести к снижению производительности при выполнении некоторых операций. Например, при перемещении некоторые окна перерисовываются быстрее, если перемещение кратно 8-ми пикселам.

FS_NOMOVEWITHOWNER
окно не перемещается при перемещении окна владельца.

FS_SCREENALIGN
указанные координаты задают расположение диалогового окна относительно левого нижнего угла экрана, а не окна владельца.

FS_SIZEBORDER
бордюр, используемый для тех окон, чьи размеры можно менять.

FS_SYSMODAL
системное модальное окно.

FS_TASKLIST
имя программы добавляется впереди текста в заголовке фрейма и результат используется в качестве заголовка окна, а также добавляется в Список Окон.

В этом контексте, имя программы - это текстовая строка, используемая десктоп-менеджером для идентификации программы, или текстовая строка, указанная как параметр в команде START. Если никакая строка не определена, то используется имя файла и расширение .EXE.

Смотри также флаги создания фрейма.

>>> Назад к оглавлению.


WC_FRAME (флаги создания фрейма)

При создании окон класса WC_FRAME используются следующие флаги создания, определяющие наличие и вид дочерних окон фрейма:

FCF_ACCELTABLE
функцией WinCreateStdWindow из ресурсов загружается таблица акселераторов, имеющая тот же идентификатор, что и идентификатор окна, указанный в функции.

FCF_AUTOICON
в минимизированном состоянии система не посылает приложению сообщение WM_PAINT, а только перерисовывает иконку. Это повышает производительность системы.

FCF_BORDER
бордюр в виде тонкой рамки.

FCF_DLGBORDER
бордюр, используемый для диалоговых окон.

FCF_HIDEBUTTON
кнопка сокрытия.

FCF_HIDEMAX
кнопки сокрытия и максимизации.

FCF_HORZSCROLL
горизонтальная полоса прокрутки.

FCF_ICON
функцией WinCreateStdWindow из ресурсов загружается иконка, имеющая тот же идентификатор, что и идентификатор окна, указанный в функции.

FCF_MAXBUTTON
кнопка максимизации.

FCF_MENU
функцией WinCreateStdWindow из ресурсов загружается меню приложения, имеющее тот же идентификатор, что и идентификатор окна, указанный в функции.

FCF_MINBUTTON
кнопка минимизации.

FCF_MINMAX
кнопки минимизации и максимизации.

FCF_MOUSEALIGN
указанные координаты задают расположение диалогового окна относительно положения указателя мыши в момент создания. Если возможно, операционная система старается разместить диалог так, чтобы он полностью помещался на экране.

FCF_NOBYTEALIGN
не выполняется выравнивание структур окна на границу байта. Это может привести к снижению производительности при выполнении некоторых операций. Например, при перемещении некоторые окна перерисовываются быстрее, если перемещение кратно 8-ми пикселам.

FCF_NOMOVEWITHOWNER
окно не перемещается при перемещении окна владельца.

FCF_SCREENALIGN
указанные координаты задают расположение диалогового окна относительно левого нижнего угла экрана, а не окна владельца.

FCF_SHELLPOSITION
позиция и размеры окна определяются Presentation Manager во время создания, а не задаются приложением.

FCF_SIZEBORDER
бордюр, используемый для тех окон, чьи размеры можно менять.

FCF_STANDARD
комбинация следующих стилей:

FCF_TITLEBAR | FCF_SYSMENU | FCF_MINBUTTON | FCF_MAXBUTTON | FCF_SIZEBORDER | FCF_ICON | FCF_MENU | FCF_ACCELTABLE | FCF_SHELLPOSITION | FCF_TASKLIST.

Присваивается по умолчанию, если при создании фрейма не указан ни один флаг.

FCF_SYSMENU
системное меню.

FCF_SYSMODAL
системное модальное окно.

FCF_TASKLIST
имя программы добавляется впереди текста в заголовке фрейма и результат используется в качестве заголовка окна, а также добавляется в Список Окон.

В этом контексте, имя программы - это текстовая строка, используемая десктоп-менеджером для идентификации программы, или текстовая строка, указанная как параметр в команде START. Если никакая строка не определена, то используется имя файла и расширение .EXE.

FCF_TITLEBAR
заголовок окна.

FCF_VERTSCROLL
вертикальная полоса прокрутки.

Смотри также идентификаторы окон фрейма.

>>> Назад к оглавлению.


WC_FRAME (идентификаторы окон фрейма)

При создании окон класса WC_FRAME используются следующие идентификаторы служебных окон фрейма:

FID_CLIENT
клиентское окно.

FID_HORZSCROLL
горизонтальная полоса прокрутки.

FID_MENU
меню.

FID_MINMAX
кнопки максимизации и минимизации.

FID_SYSMENU
системное меню.

FID_TITLEBAR
полоса заголовка.

FID_VERTSCROLL
вертикальная полоса прокрутки.

>>> Назад к оглавлению.


WC_LISTBOX

Класс WC_LISTBOX создает список, состоящий из текстовых строк, из которых пользователь может сделать выбор.

Создавая окна этого класса, можно использовать следующие стили:

LS_HORZSCROLL
требуется горизонтальная полоса прокрутки.

LS_EXTENDSEL
доступен расширенный выбор.

LS_MULTIPLESEL
множественный выбор, позволяет пользователю выбрать одну или несколько строк в списке за один раз. Если указан этот стиль, то обязательно должен быть указан стиль LS_EXTENDSEL.

LS_NOADJUSTPOS
размер окна списка не выравнивается для показа только того количества строк, которое полностью умещается по вертикали.

LS_OWNERDRAW
владелец окна может сам прорисовывать строки списка. Обычно это текстовые строки с расположенным перед ним небольшим растровым изображением (bitmap).

>>> Назад к оглавлению.


WC_MENU

Класс WC_MENU создает меню, которое может представляться как горизонтальный набор пунктов, так и как вертикальный выпадающий список пунктов меню.

Создавая окна этого класса, можно использовать следующие стили:

MS_ACTIONBAR
список пунктов располагается горизонтально. Используется для меню верхнего уровня. Меню, не имеющие этого стиля, отображаются вертикально в одну или несколько колонок и ассоциируются с пунктами горизонтального меню в качестве подменю.

MS_CONDITIONALCASCADE
условное каскадное меню. Если обычное выпадающее каскадное меню открывается, когда пользователь выбирает связанный пункт меню верхнего уровня, то для открытия условного каскадного меню пользователь должен щелкнуть мышью по специальному минизначку в этом пункте. Если же пользователь просто щелкнет мышью по этому пункту меню (не открывая условное каскадное меню), то будет выбран пункт условного каскадного меню, выполняемый по умолчанию. Этот пункт снабжается специальной меткой в условном каскадном меню.

MS_TITLEBUTTON
меню может использоваться как кнопка в полосе заголовка. Вместе с этим стилем можно применять только стиль MS_ACTIONBAR.

MS_VERTICALFLIP
выпадающее меню раскрывается над связанным пунктом меню верхнего уровня. Если меню не помещается на экран, то оно открывается под этим пунктом.

Обычно меню раскрывается под связанным пунктом и только, если меню не умещается на экране, то оно открывается над этим пунктом.

Смотри также стили пунктов меню.

>>> Назад к оглавлению.


WC_MENU (стили пунктов меню)

При создании окон класса WC_MENU используются следующие стили для создания пунктов меню:

MIS_BITMAP
в пункте меню отображается растровые изображение (bitmap).

MIS_BREAK
начинает новую строку или колонку.

MIS_BREAKSEPARATOR
подобно MIS_BREAK, но дополнительно рисуется разделитель между строками или колонками выпадающего меню. Используется только в подменю.

MIS_BUTTONSEPARATOR
кнопка-разделитель в виде пункта меню. Любое меню может иметь один или два пункта такого типа. Обычно это последние пункты в меню и отображаются через разделитель от остальных пунктов. Пользователь не может установиться на этот пункт меню с помощью клавиш управления курсором, но может выбрать его мышью или клавишей-акселератором.

MIS_HELP
при выборе этого пункта меню отправляет владельцу сообщение WM_HELP, а не WM_COMMAND.

MIS_OWNERDRAW
пункт меню отрисовывается владельцем. Сообщения WM_DRAWITEM и WM_MEASUREITEM посылаются владельцу для прорисовки и определения размеров пункта меню. Компилятор ресурсов игнорирует текст, указанный в определении пункта меню, и не помещает его в ресурсы.

MIS_SEPARATOR
разделитель - горизонтальная линия. Используется только в выпадающих меню. Не выполняет никаких действий, пункт нельзя выбрать, подсветить, отметить и т.д.

MIS_STATIC
информационный пункт меню. Его нельзя выбрать ни мышью, ни с клавиатуры.

MIS_SUBMENU
подменю нижнего уровня. Когда пользователь выбирает этот пункт меню, то открывается подменю следующего уровня.

MIS_SYSCOMMAND
при выборе этого пункта меню отправляет владельцу сообщение WM_SYSCOMMAND, а не WM_COMMAND.

MIS_TEXT
в пункте меню отображается текст.

Смотри также атрибуты пунктов меню.

>>> Назад к оглавлению.


WC_MENU (атрибуты пунктов меню)

Пункты меню, созданные в окнах класса WC_MENU, могут иметь следующие атрибуты:

MIA_HILITED
пункт меню подсвечен.

MIA_CHECKED
пункт меню отмечен галочкой.

MIA_DISABLED
пункт меню отключен.

MIA_FRAMED
вокруг пункта меню рисуется рамочка.

MIA_NODISMISS
обычно, выпадающее меню автоматически прячется после того, как пользователь выберет один из пунктов меню или переключится на другое окно. Если же выбранный пункт меню имеет атрибут MIA_NODISMISS, то данное подменю, а также и все родительские подменю, остаются на экране до тех пор, пока пользователь не закроет его, нажав клавишу Escape. Подменю остается на экране, даже если пользователь переключится на другое окно.

>>> Назад к оглавлению.


WC_MLE

Класс WC_MLE создает набор текстовых строк, которые пользователь может редактировать.

Создавая окна этого класса, можно использовать следующие стили:

MLS_BORDER
вокруг элемента управления рисуется бордюр в виде тонкой линии.

MLS_DISABLEUNDO
запрещает операции отмены внесенных изменений.

MLS_HSCROLL
добавляет горизонтальную полосу прокрутки.

MLS_IGNORETAB
нажатия на клавишу Tab игнорируются. Вместо этого владельцу окна посылается соответствующее сообщение WM_CHAR.

MLS_READONLY
только чтение, запрет редактирования строк.

MLS_VSCROLL
добавляет вертикальную полосу прокрутки.

MLS_WORDWRAP
автоматически переносит слова на следующую строку, если они не умещаются в окне.

>>> Назад к оглавлению.


WC_NOTEBOOK

Класс WC_NOTEBOOK создает блокнот, т.е. набор страничек с названиями на закладках. Текущая страничка видна, остальные скрыты, но закладки видны и позволяют быстро выбрать соответствующую страничку.

Создавая окна этого класса, можно использовать следующие стили:

0x800
блокнот в стиле Warp версии 4.0 (Merlin). OS/2 версии <= 3.0 игнорирует этот стиль. OS/2 версии >= 4.0 игнорирует остальные стили, если установлен этот стиль.

BKS_BACKPAGESBL
боковой срез пачки страниц прорисовывается с нижнего и левого обрезов блокнота.

BKS_BACKPAGESBR
боковой срез пачки страниц прорисовывается с нижнего и правого обрезов блокнота. Действует по умолчанию.

BKS_BACKPAGESTL
боковой срез пачки страниц прорисовывается с верхнего и левого обрезов блокнота.

BKS_BACKPAGESTR
боковой срез пачки страниц прорисовывается с верхнего и правого обрезов блокнота.

BKS_MAJORTABBOTTOM
размещает главные закладки на нижнем обрезе блокнота. Правильно только в комбинации с BKS_BACKPAGESBL или BKS_BACKPAGESBR. Используется по умолчанию, если задан BKS_BACKPAGESBL.

BKS_MAJORTABLEFT
размещает главные закладки на левом обрезе блокнота. Правильно только в комбинации с BKS_BACKPAGESBL или BKS_BACKPAGESTL. Используется по умолчанию, если задан BKS_BACKPAGESTL.

BKS_MAJORTABRIGHT
размещает главные закладки на правом обрезе блокнота. Правильно только в комбинации с BKS_BACKPAGESBR или BKS_BACKPAGESTR. Используется по умолчанию, если задан любой из этих стилей.

BKS_MAJORTABTOP
размещает главные закладки на верхнем обрезе блокнота. Правильно только в комбинации с BKS_BACKPAGESTL или BKS_BACKPAGESTR.

BKS_POLYGONTABS
закладки прямоугольной формы с закругленным краем.

BKS_ROUNDEDTABS
закладки прямоугольной формы со срезанными углами.

BKS_SOLIDBIND
корешок, скрепляющий страницы, изображается в виде сплошной склейки. Действует по умолчанию.

BKS_SPIRALBIND
корешок, скрепляющий страницы, изображается в виде спирали.

BKS_SQUARETABS
закладки прямоугольной формы. Действует по умолчанию.

BKS_STATUSTEXTCENTER
строка состояния центруется.

BKS_STATUSTEXTLEFT
строка состояния выравнивается по левому краю. Действует по умолчанию.

BKS_STATUSTEXTRIGHT
строка состояния выравнивается по правому краю.

BKS_TABTEXTCENTER
текст на закладках центруется. Действует по умолчанию.

BKS_TABTEXTLEFT
текст на закладках выравнивается по левому краю.

BKS_TABTEXTRIGHT
текст на закладках выравнивается по правому краю.

>>> Назад к оглавлению.


WC_SCROLLBAR

Класс WC_SCROLLBAR создает полосу прокрутки, позволяющую пользователю прокрутить содержимое связанного окна.

Создавая окна этого класса, можно использовать следующие стили:

SBS_AUTOSIZE
размер движка зависит от количества данных в окне.

SBS_AUTOTRACK
при прокрутке полосы перемещается полное изображение движка

SBS_HORZ
горизонтальная полоса прокрутки.

SBS_THUMBSIZE
размер движка вычисляется при создании и зависит от общего числа объектов и числа объектов, видимых в окне.

SBS_VERT
вертикальная полоса прокрутки.

>>> Назад к оглавлению.


WC_SLIDER

Класс WC_SLIDER создает линейный регулятор, позволяющий в аналоговом (графическом) виде задавать некоторые цифровые значения.

Создавая окна этого класса, можно использовать следующие стили:

SLS_BOTTOM
регулятор располагается над нижним краем окна. Только для горизонтальных регуляторов.

SLS_BUTTONSBOTTOM
дополнительные кнопки перемещения движка регулятора располагаются сверху. Только для вертикальных регуляторов.

SLS_BUTTONSLEFT
дополнительные кнопки перемещения движка регулятора располагаются слева. Только для горизонтальных регуляторов.

SLS_BUTTONSRIGHT
дополнительные кнопки перемещения движка регулятора располагаются справа. Только для горизонтальных регуляторов.

SLS_BUTTONSTOP
дополнительные кнопки перемещения движка регулятора располагаются снизу. Только для вертикальных регуляторов.

SLS_CENTER
регулятор располагается по центру окна. Действует по умолчанию.

SLS_HOMEBOTTOM
отсчет позиции движка идет от нижнего края регулятора. Только для вертикальных регуляторов. Действует для них по умолчанию.

SLS_HOMELEFT
отсчет позиции движка идет от левого края регулятора. Только для горизонтальных регуляторов. Действует для них по умолчанию.

SLS_HOMERIGHT
отсчет позиции движка идет от правого края регулятора. Только для горизонтальных регуляторов.

SLS_HOMETOP
отсчет позиции движка идет от верхнего края регулятора. Только для вертикальных регуляторов.

SLS_HORIZONTAL
горизонтальный регулятор. Шкала может располагаться над полосой регулятора, под ней или с обоих сторон. Действует по умолчанию.

SLS_LEFT
регулятор располагается на левом краю окна. Только для вертикальных регуляторов.

SLS_OWNERDRAW
владелец окна уведомляется о необходимости перерисовки регулятора.

SLS_PRIMARYSCALE1
регулятор использует приращения, определенные для шкалы 1. Шкала 1 отображается выше регулятора или справа от него. Действует по умолчанию.

SLS_PRIMARYSCALE2
регулятор использует приращения, определенные для шкалы 2. Шкала 2 отображается ниже регулятора или слева от него.

SLS_READONLY
только чтение. Обычно используется как механизм уведомления пользователя о проценте выполнения какой-либо операции.

SLS_RIBBONSTRIP
при перемещении движка регулятора полоса заливается выбранным цветом от начальной позиции до движка.

SLS_RIGHT
регулятор располагается на правом краю окна. Только для вертикальных регуляторов.

SLS_SNAPTOINCREMENT
после перемещения движка регулятора он выравнивается на следующую позицию приращения в полосе регулятора, т.е. на следующее деление шкалы.

SLS_TOP
регулятор располагается под верхним краем окна. Только для горизонтальных регуляторов.

SLS_VERTICAL
вертикальный регулятор. Шкала может располагаться слева от полосы регулятора, справа от нее или с обоих сторон.

Замечание: Если не указан ни один из стилей SLS_BUTTONSBOTTOM, SLS_BUTTONSLEFT, SLS_BUTTONSRIGHT или SLS_BUTTONSTOP, то дополнительные кнопки не изображаются.

>>> Назад к оглавлению.


WC_SPINBUTTON

Класс WC_SPINBUTTON создает переключатель барабанного типа, т.е. аналог вращающегося барабана, на который нанесены некоторые значения, которые демонстрируются в прозрачном окошке. Т.к. пользователь в каждый момент видит только одно значение, то этот тип переключателя должен использоваться для выбора данных, которые интуитивно связаны.

Создавая окна этого класса, можно использовать следующие стили:

SPBS_ALLCHARACTERS
в окошке значений могут отображаться любые символы. Действует по умолчанию.

SPBS_FASTSPIN
кнопки вращения барабана удваивают скорость вращения каждые две секунды.

SPBS_JUSTCENTER
текст в окошке центруется.

SPBS_JUSTLEFT
текст в окошке выравнивается по левой границе окна. Действует по умолчанию.

SPBS_JUSTRIGHT
текст в окошке выравнивается по правой границе окна.

SPBS_MASTER
переключатель содержит окошко значений и две кнопки вращения барабана (главный барабан). Если переключатель однокомпонентный, то он должен быть главным.

SPBS_NOBORDER
бордюр не отрисовывается.

SPBS_NUMERICONLY
в окошке значений могут отображаться только цифры от 0 до 9 и знак минус (-).

SPBS_PADWITHZEROS
числовые значения в окошке дополняются лидирующими нулями до ширины поля или до 11 цифр, если ширина больше. Знак минус, если он есть, остается. Максимальное число цифр, необходимое для изображения десятичного числа в формате LONG, равно 11.

SPBS_READONLY
только чтение. Запрет редактировать окошко значений.

SPBS_SERVANT
переключатель содержит только окошко значений (ведомый барабан). Предназначен для построения многокомпонентных переключателей, где один или несколько ведомых барабанов связаны с главным.

>>> Назад к оглавлению.


WC_STATIC

Класс WC_STATIC создает простой отображаемый элемент, который не отвечает на выбор его мышью или с помощью клавиатуры.

Создавая окна этого класса, можно использовать следующие стили:

SS_AUTOSIZE
размеры элемента управления автоматически устанавливаются так, чтобы в окно умещалось все содержимое.

SS_BITMAP
растровое изображение. Смотри SS_ICON.

SS_BKGNDFRAME
создает рамку, цвет определяется цветом фона.

SS_BKGNDRECT
создает прямоугольник, цвет определяется цветом фона.

SS_FGNDFRAME
создает рамку, цвет определяется цветом переднего плана.

SS_FGNDRECT
создает прямоугольник, цвет определяется цветом переднего плана.

SS_GROUPBOX
рамка, объединяющая элементы управления в группу, с идентифицирующим текстом в левом верхнем углу.

SS_HALFTONEFRAME
создает полутоновую рамку.

SS_HALFTONERECT
создает полутоновой прямоугольник.

SS_ICON
иконка. Текст представляет собой строку, содержащую идентификатор ресурса иконки в одном из двух форматов:

SS_TEXT
окно с форматированным текстом.

Смотри также флаги форматирования текста.

SS_SYSICON
то же самое, что и SS_ICON, но в качестве идентификатора иконки указывается один из идентификаторов системных иконок (константы SPTR_*).

>>> Назад к оглавлению.


WC_STATIC (флаги форматирования текста)

При создании окон класса WC_STATIC со стилем SS_TEXT используются следующие флаги форматирования текста:

DT_BOTTOM
текст выравнивается по нижнему краю окна.

DT_CENTER
текст центруется.

DT_LEFT
текст выравнивается по левой границе окна.

DT_RIGHT
текст выравнивается по правой границе окна.

DT_TOP
текст выравнивается по верхнему краю окна.

DT_VCENTER
текст выравнивается вертикально по центру окна.

DT_WORDBREAK
текст представляется многострочным, остатки строки, не умещающиеся в окно, переносятся в начало следующей строки.

>>> Назад к оглавлению.


WC_VALUESET

Класс WC_VALUESET создает набор значений, функционально подобный радиокнопкам, но предоставляющий большую гибкость отображения графической, текстовой и цифровой информации.

Создавая окна этого класса, можно использовать следующие стили:

VS_BITMAP
объекты значений представляют собой растровые изображения (bitmap).

VS_BORDER
бордюр в виде тонкой линии вокруг элемента управления.

VS_COLORINDEX
объекты значений представляют собой цвета из палитры цветов. Цвет обозначается соответствующим индексом в палитре цветов.

VS_ICON
объекты значений представляют собой иконки.

VS_ITEMBORDER
бордюр в виде тонкой линии вокруг каждого объекта в элементе управления.

VS_OWNERDRAW
владелец окна уведомляется от необходимости перерисовки элемента управления.

VS_RGB
объекты значений представляют собой цвета, заданные в формате RGB (красный-зеленый-синий).

VS_RIGHTTOLEFT
объекты располагаются в окне справа налево. Обычный порядок - слева направо.

VS_SCALEBITMAPS
автоматическое масштабирование растровых изображений (bitmap) под размеры области, занимаемой объектом значения. Обычно растровое изображение центруется в этой области и усекается до ее размеров.

VS_TEXT
объекты значений представляют собой текстовые строки.

>>> Назад к оглавлению.


Параметры отображения

Параметры отображения задают цветовое и шрифтовое оформление окон любого класса. Окна предопределенных классов автоматически используют эти параметры. При самостоятельной разработке классов окон следует предусмотреть возможность обработки этих параметров.

Следующие параметры отображения используются при создании окон любого класса:

PP_ACTIVECOLOR
цвет значения данных в активном окне в формате RGB.

PP_ACTIVECOLORINDEX
индекс цвета значения данных в активном окне в палитре.

PP_ACTIVETEXTBGNDCOLOR
цвет заднего плана текста в активном окне в формате RGB.

PP_ACTIVETEXTBGNDCOLORINDEX
индекс цвета заднего плана текста в активном окне в палитре.

PP_ACTIVETEXTFGNDCOLOR
цвет переднего плана текста в активном окне в формате RGB.

PP_ACTIVETEXTFGNDCOLORINDEX
индекс цвета переднего плана текста в активном окне в палитре.

PP_BACKGROUNDCOLOR
цвет заднего плана в формате RGB.

PP_BACKGROUNDCOLORINDEX
индекс цвета заднего плана в палитре.

PP_BORDERCOLOR
цвет бордюра в формате RGB.

PP_BORDERCOLORINDEX
индекс цвета бордюра в палитре.

PP_DISABLEDBACKGROUNDCOLOR
цвет заднего плана отключенного элемента в формате RGB.

PP_DISABLEDBACKGROUNDCOLORINDEX
индекс цвета заднего плана отключенного элемента в палитре.

PP_DISABLEDFOREGROUNDCOLOR
цвет переднего плана отключенного элемента в формате RGB.

PP_DISABLEDFOREGROUNDCOLORINDEX
индекс цвета переднего плана отключенного элемента в палитре.

PP_FONTNAMESIZE
имя фонта и размер.

PP_FOREGROUNDCOLOR
цвет переднего плана в формате RGB.

PP_FOREGROUNDCOLORINDEX
индекс цвета переднего плана в палитре.

PP_HILITEBACKGROUNDCOLOR
цвет подсветки заднего плана в формате RGB.

PP_HILITEBACKGROUNDCOLORINDEX
индекс цвета подсветки заднего плана в палитре.

PP_HILITEFOREGROUNDCOLOR
цвет подсветки переднего плана в формате RGB, например, для пунктов меню.

PP_HILITEFOREGROUNDCOLORINDEX
индекс цвета подсветки переднего плана в палитре.

PP_INACTIVECOLOR
цвет значения данных в неактивном окне в формате RGB.

PP_INACTIVECOLORINDEX
индекс цвета значения данных в неактивном окне в палитре.

PP_INACTIVETEXTBGNDCOLOR
цвет заднего плана текста в неактивном окне в формате RGB.

PP_INACTIVETEXTBGNDCOLORINDEX
индекс цвета заднего плана текста в неактивном окне в палитре.

PP_INACTIVETEXTFGNDCOLOR
цвет переднего плана текста в неактивном окне в формате RGB.

PP_INACTIVETEXTFGNDCOLORINDEX
индекс цвета переднего плана текста в неактивном окне в палитре.

PP_SHADOW
цвет тени, отбрасываемой элементом управления.

PP_USER
параметр, определяемый пользователя.

Цвета в формате RGB обычно задаются в виде шестнадцатиричной константы в формате

   0x00RRGGBB,
      где RR - яркость красного цвета от 00 до FF,
          GG - яркость зеленого цвета от 00 до FF,
          BB - яркость синего цвета от 00 до FF,
      где 00 соответствует минимальной яркости,
        а FF - максимальной.

Можно использовать также предоставляемые системой константы, определяющие цвета в формате RGB.

В качестве индекса в палитре цветов можно использовать цвета логической таблицы или системные цвета.

Размер и имя фонта задается в виде строки, начинающейся с десятичного представления размера, отделенного символом точка (.) от названия фонта, например, "12.Helv".

>>> Назад к оглавлению.


Системные цвета

Системные цвета задают стандартное цветовое оформление окон любого класса. Система использует эти цвета для оформления соответствующих элементов и окон. Системный цвет задается в виде индекса в системной таблице цветов.

Следующие системные цвета используются в оформлении окон:

SYSCLR_ACTIVEBORDER
цвет бордюра активного окна.

SYSCLR_ACTIVETITLE
цвет заголовка активного окна.

SYSCLR_ACTIVETITLETEXT
цвет текста в заголовке активного окна.

SYSCLR_ACTIVETITLETEXTBGND
цвет фона текста в заголовке активного окна.

SYSCLR_APPWORKSPACE
цвет рабочей область приложения.

SYSCLR_BACKGROUND
цвет фона.

SYSCLR_BUTTONDARK
цвет теневой стороны кнопки.

SYSCLR_BUTTONDEFAULT
цвет бордюра кнопки, действующей по умолчанию.

SYSCLR_BUTTONLIGHT
цвет освещенной стороны кнопки.

SYSCLR_BUTTONMIDDLE
цвет лицевой стороны кнопки.

SYSCLR_DIALOGBACKGROUND
цвет фона диалога.

SYSCLR_ENTRYFIELD
цвет поля ввода.

SYSCLR_FIELDBACKGROUND
цвет фона поля.

SYSCLR_HELPBACKGROUND
цвет фона в окне помощи.

SYSCLR_HELPHILITE
цвет подсветки в окне помощи.

SYSCLR_HELPTEXT
цвет текста в окне помощи.

SYSCLR_HILITEBACKGROUND
цвет фона подсветки.

SYSCLR_HILITEFOREGROUND
цвет переднего плана подсветки.

SYSCLR_ICONTEXT
цвет текста под иконкой.

SYSCLR_INACTIVEBORDER
цвет бордюра неактивного окна.

SYSCLR_INACTIVETITLE
цвет заголовка неактивного окна.

SYSCLR_INACTIVETITLETEXT
цвет текста в заголовке неактивного окна.

SYSCLR_INACTIVETITLETEXTBGND
цвет фона заголовка неактивного окна.

SYSCLR_MENU
цвет меню.

SYSCLR_MENUDISABLEDTEXT
цвет текста отключенного пункта меню.

SYSCLR_MENUHILITE
цвет подсветки меню.

SYSCLR_MENUHILITEBGND
цвет фона подсвеченного пункта меню.

SYSCLR_MENUTEXT
цвет текста меню.

SYSCLR_OUTPUTTEXT
цвет текста, выводимого в окно.

SYSCLR_PAGEBACKGROUND
цвет фона страницы.

SYSCLR_SCROLLBAR
цвет полосы прокрутки.

SYSCLR_SHADOW
цвет тени.

SYSCLR_SHADOWHILITEBGND
цвет фона подсветки тени.

SYSCLR_SHADOWHILITEFGND
цвет переднего плана подсветки тени.

SYSCLR_SHADOWTEXT
цвет текста тени.

SYSCLR_TITLEBOTTOM
цвет фона заголовка.

SYSCLR_TITLETEXT
цвет текста заголовка.

SYSCLR_WINDOW
цвет фона окна.

SYSCLR_WINDOWFRAME
цвет фрейма окна.

SYSCLR_WINDOWSTATICTEXT
цвет текста в статическом окне.

SYSCLR_WINDOWTEXT
цвет текста в окне.

>>> Назад к оглавлению.


Цвета логической таблицы

Логическая таблица цветов задает определения цветов в виде индексов в палитре.

Используются следующие определения цветов:

CLR_BACKGROUND
цвет натурального фона, зависящий от устройства. Для экрана, например, используется SYSCLR_WINDOW.

CLR_BLACK
черный.

CLR_BLUE
голубой.

CLR_BROWN
коричневый.

CLR_CYAN
бирюзовый.

CLR_DARKBLUE
темносиний.

CLR_DARKCYAN
темнобирюзовый.

CLR_DARKGRAY
темносерый.

CLR_DARKGREEN
темнозеленый.

CLR_DARKPINK
темномалиновый.

CLR_DARKRED
темнокрасный.

CLR_DEFAULT
цвет, используемый для данного элемента по умолчанию.

CLR_FALSE
устанавливает все биты цветности в 0.

CLR_GREEN
зеленый.

CLR_NEUTRAL
цвет, контрастный к CLR_BACKGROUND. Для экрана, например, используется SYSCLR_WINDOWTEXT.

CLR_PALEGRAY
светлосерый.

CLR_PINK
малиновый.

CLR_RED
красный.

CLR_TRUE
устанавливает все биты цветности в 1.

CLR_WHITE
белый.

CLR_YELLOW
желтый.

>>> Назад к оглавлению.


Цвета в формате RGB

Цвета в формате RGB обычно задаются в виде шестнадцатиричной константы в формате

   0x00RRGGBB,
      где RR - яркость красного цвета от 00 до FF,
          GG - яркость зеленого цвета от 00 до FF,
          BB - яркость синего цвета от 00 до FF,
      где 00 соответствует минимальной яркости,
        а FF - максимальной.

Система также предоставляет следующие определения цветов:

RGB_BLACK
черный.

RGB_BLUE
голубой.

RGB_CYAN
бирюзовый.

RGB_GREEN
зеленый.

RGB_PINK
малиновый.

RGB_RED
красный.

RGB_WHITE
белый.

RGB_YELLOW
желтый.

>>> Назад к оглавлению.

Загрузить перевод документации в формате INF: rc.inf.zip, 78k.

---
Интересные ссылки:

---

---
Комментариев к странице: 0 | Добавить комментарий
---
Редактор: Дмитрий Бан
Оформление: Евгений Кулешов
(C) Russian Underground/2