|
The Russian Electronic Developer Magazine |
|
Русский электронный журнал разработчика |
|
Компилятор Ресурсов для 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 <скрипт-файл ресурсов> [<исполняемый файл>]
- откомпилировать скрипт-файл ресурсов и сохранить
результат в двоичном файле:
rc -r <скрипт-файл ресурсов> [<двоичный файл ресурсов>]
Замечание: В этом случае
ресурсы не добавляются в исполнительный файл.
- добавить ранее откомпилированные ресурсы из
двоичного фала в исполнительный:
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 -
восьмеричное представление. Если строка должна
содержать символ обратного слэша, то его надо
записать дважды.
Некоторые управляющие символы также особым
образом интерпретируются загрузчиком ресурсов:
- символ \a или \x08
(Backspace, возврат на одну позицию)
интерпретируется в названиях кнопок и пунктов меню
как символ выравнивания справа.
Т.е. весь текст, следующий за этим символом,
выравнивается справа.
- символ \t или \x09 (Tab, табуляция)
интерпретируется в названиях кнопок и пунктов
меню как символ табуляции.
Как правило, этот символ используется
для разделения названия пункта меню и обозначения
клавиши-акселератора.
- символ (#) используется как управляющий в тех
случаях, когда пункты меню или кнопки должны
содержать растровое изображение (bitmap) или
иконки.
С этого символа начинается ASCII-нотация
идентификатора растрового изображения/иконки,
т.е. если идентификатор ресурса 401,
то ASCII-нотация - это строка "#401".
Если на кнопке должен отображаться
также и текст, то он следует за ASCII-нотацией
иконки и отделяется от него символом
табуляции \t.
- символ тильда (~) интерпретируется как
управляющий в текстовых полях, содержащих
названия кнопок и пунктов меню.
В этом случае, символ тильда (~) отмечает последующий
символ, как символ мнемонического управления.
Когда текст отображается на экране, то символ
тильда (~) не отображается, а мнемонический
символ подчеркивается.
Пользователь может выбрать элемент управления,
нажав на клавиатуре соответствующий мнемонический
символ.
Константы (или макропеременные) - это имена,
которым директивой #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 позволяет определить
имя макропеременной и присвоить ей некоторое значение.
Все последующие вхождения имени этой макропеременной
в тексте будут заменены на указанное значение.
- имя
- имя макропеременной.
Может состоять из любой комбинации букв, цифр
и знаков препинания.
- значение
- любое число, символьная строка или строка текста.
В качестве значения может использоваться выражение,
которое может содержать имена других макропеременных.
Возможны 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 отмечает пункт дополнительной проверки в
блоке условной компиляции, который был начат директивами
#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 отмечает альтернативный пункт в блоке
условной компиляции, который был начат директивами
#if, #ifdef или #ifndef.
Она должна быть последней директивой
перед соответствующей директивой #endif, закрывающей
текущий блок условной компиляции, и получает управление
только в том случае, если не было выполнено условие ни в
одном из предыдущих пунктов проверки.
Пример:
#ifdef DEBUG
BITMAP 1 errbox.bmp
#else
BITMAP 1 userbox.bmp
#endif
Если макропеременная DEBUG определена, то в качестве
ресурса растрового изображения будет использоваться файл
ERRBOX.BMP.
Иначе будет использоваться файл USERBOX.BMP.
>>> Назад к оглавлению.
Синтаксис:
#endif
Описание:
Директива #endif завершает блок условной компиляции,
который был начат директивами
#if, #ifdef или #ifndef.
Каждый блок условной компиляции, начатый директивами
#if, #ifdef или #ifndef,
должен быть завершен директивой #endif.
Пример:
#ifdef DEBUG
BITMAP 1 errbox.bmp
#endif
Если макропеременная DEBUG определена, то в качестве
ресурса растрового изображения будет использоваться файл
ERRBOX.BMP.
>>> Назад к оглавлению.
Синтаксис:
#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 начинает блок условной компиляции.
Директива управляет условной компиляцией скрипт-файла
ресурсов, проверяя определена или нет указанная
макропеременная.
Макропеременная может быть определена с помощью
директивы #define и из командной строки
компилятора ресурсов с помощью опции -d.
Если проверяемая макропеременная определена,
то все операторы до следующей встреченной директивы
#endif, #elif или #else
будут обрабатываться компилятором ресурсов.
Если следующей встреченной директивой были
#elif или #else,
то все остальные операторы от этих директив до первой
встреченной директивы #endif
будут исключены из обработки.
Если проверяемая макропеременная не определена,
то все операторы до следующей встреченной директивы
#endif, #elif или #else
будут будут исключены из обработки и управление
будет передано этой следующей директиве.
- имя
- имя макропеременной.
Может состоять из любой комбинации букв, цифр
и знаков препинания.
Пример:
#ifdef DEBUG
BITMAP 1 errbox.bmp
#endif
Если макропеременная DEBUG определена, то в качестве
ресурса растрового изображения будет использоваться файл
ERRBOX.BMP.
>>> Назад к оглавлению.
Синтаксис:
#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 позволяет RC включить в обработку
указанный файл заголовков.
Файл заголовков обычно содержит определения макропеременных
(констант), используемых в скрипт-файле ресурсов.
В файле заголовков обрабатываются только
директивы #define;
все другие операторы игнорируются.
- файл
- имя файла заголовков в формате OS/2.
Это должна быть строка, заключенная в двойные кавычки ("),
если файл находится в текущем каталоге,
или в угловые скобки (<>),
если файл находится в одном из каталогов,
перечисленных в переменной окружения INCLUDE.
В остальных случаях необходимо указать имя файла
с полным путем и заключить его в двойные кавычки (").
Имя файла рассматривается как строка C.
Т.е. в полном пути необходимо использовать
два обратных слэша вместо одного.
С другой стороны, можно использовать один символ прямого
слэша (/) вместо двух обратных.
Пример:
#include <os2.h>
#include "headers\\mydefs.h"
В качестве файлов заголовков используются файлы OS2.H
(расположен в одном из каталогов, перечисленных в INCLUDE)
и файл MYDEFS.H, расположенный в подкаталоге HEADERS
текущего каталога.
>>> Назад к оглавлению.
Синтаксис:
#undef <имя>
Описание:
Директива #undef удаляет текущие определения
указанных макропеременных.
При обработке последующего текста подстановки
выполняться не будут.
- имя
- имя макропеременной. Может состоять из любой
комбинации букв, цифр и знаков препинания.
Пример:
#undef NONZERO
#undef USERCLASS
Удаляются определения констант NONZERO и USERCLASS.
>>> Назад к оглавлению.
>>> Назад к оглавлению.
Синтаксис:
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 <идентификатор> [<опции загрузки>] [<опции памяти>] [<кодовая страница>]
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 <текст>, <идентификатор>, <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 <текст>, <идентификатор>, <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.
Изображение обычно создается с помощью графического
редактора (например, 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 <текст>, <идентификатор>, <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 отсутствует
в скрипт-файле ресурсов, то RC использует текущую
кодовую страницу, установленную в конкретной системе.
Если в скрипт-файле используется больше одного оператора
CODEPAGE, то каждый оператор назначает
кодовую страницу для ресурсов, перечисленных от одного
оператора CODEPAGE до другого.
- кодовая страница
- идентификатор (номер) кодовой страницы.
Это может быть одно из следующих значений:
- 437
- американская (английская)
- 850
- многоязыковая
- 860
- португальская
- 863
- канадская (французская)
- 865
- норвержская
- 932
- японская
- 934
- корейская
- 936
- китайская
- 938
- тайваньская
Комметарий:
Идентификатор кодовой страницы можно также указать в любом
операторе ресурсов после опций загрузки и памяти, если
оператор ресурсов позволяет это.
Пример:
CODEPAGE 860
Для всех последующих ресурсов используется португальская
кодовая страница.
>>> Назад к оглавлению.
Синтаксис:
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 <идентификатор>, <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 <текст>, <идентификатор>, <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 <текст>, <идентификатор>, <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 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 помещает содержимое
файла, содержащего иконку, в расширенные атрибуты
программного файла (атрибут .ICON).
По умолчанию в расширенные атрибуты записывается иконка,
имеющая идентификатор 1.
- файл
- имя файла, содержащего иконку.
Пример:
DEFAULTICON myicon.ico
Содержимое файла MYICON.ICO помещается в расширенный
атрибут .ICON программного файла.
>>> Назад к оглавлению.
Синтаксис:
DEFPUSHBUTTON <текст>, <идентификатор>, <x>, <y>, <ширина>, <высота>[, <стиль>]
Описание:
Оператор DEFPUSHBUTTON создает нажимную
кнопку, действующую по умолчанию.
Этот элемент управления диалога выглядит как прямоугольник
со слегка срезанными углами, содержащий указанный текст.
Прямоугольник очерчивается жирной линией, чтобы указать,
что это кнопка, действующая по умолчанию.
Когда пользователь выбирает этот элемент управления
(т.е. щелкает по нему мышью или нажимает мнемосимвол
на клавиатуре), то
родительское окно получает соответствующее сообщение.
Оператор DEFPUSHBUTTON может использоваться
только в операторах DIALOG и WINDOW.
Предопределенный класс для этого элемента управления
WC_BUTTON.
Если не определено иное, то по умолчанию используются
стили BS_PUSHBUTTON, BS_DEFAULT и WS_TABSTOP.
- текст
- название кнопки,
т.е. текст, отцентрованный в прямоугольной области,
изображающей кнопку.
Строка символов с кодами от 1 до 255,
заключенная в двойные кавычки,
или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("),
то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\),
то его тоже следует записать дважды.
Текст может содержать
управляющие символы:
- символ \a или \x08
(Backspace, возврат на одну позицию)
интерпретируется в названиях кнопок и пунктов меню
как символ выравнивания справа.
Т.е. весь текст, следующий за этим символом,
выравнивается справа.
- символ \t или \x09
(Tab, табуляция)
интерпретируется в названиях кнопок и пунктов меню
как символ табуляции.
Как правило, этот символ используется для разделения
названия пункта меню и обозначения клавиши-акселератора.
- символ (#) используется как управляющий в тех случаях,
когда пункты меню или кнопки должны содержать растровое
изображение (bitmap) или иконки.
С этого символа начинается ASCII-нотация идентификатора
растрового изображения/иконки, т.е. если идентификатор
ресурса 401, то ASCII-нотация - это строка
"#401".
Если на кнопке должен отображаться также и текст,
то он следует за ASCII-нотацией иконки и отделяется
от него символом табуляции \t.
- символ тильда (~) интерпретируется
как управляющий в текстовых полях, содержащих названия
кнопок и пунктов меню.
В этом случае, символ тильда (~) отмечает последующий
символ, как символ мнемонического управления.
Когда текст отображается на экране, то символ тильда (~)
не отображается, а мнемонический символ подчеркивается.
Пользователь может выбрать элемент управления, нажав
на клавиатуре соответствующий мнемонический символ.
- идентификатор
- идентификатор элемента управления.
Целое число от -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 <текст>, <идентификатор>, <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.
Каждый оператор должен иметь уникальный идентификатор.
- идентификатор
- идентификатор диалогового окна.
Целое число от -32768 до 32767 или простое выражение,
имеющее результатом число в указанных границах.
- файл
- имя файла, содержащего определения констант
для диалога.
Если файл находится не в текущем каталоге,
то следует указать полный путь.
Пример:
DLGINCLUDE 101 \\INCLUDE\\MYDEFS.H
Имя файла MYDEFS.H включается в файл ресурсов
для диалогового окна с идентификатором 101.
>>> Назад к оглавлению.
Синтаксис:
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 <текст>, <идентификатор>, <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 <текст>, <идентификатор>, <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 определяет ресурс фонта
в приложении.
Фонт - это набор растровых изображений каждого символа
из набора символов.
Обычно он создается с помощью программы
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 <текст>, <идентификатор>, <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 <текст>, <идентификатор>, <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
определяет пункт помощи в таблице помощи,
т.е. ассоциирует окно приложения с окном,
в котором будет отображаться помощь,
назначенная для дочерних окон данного окна
заданной подтаблицей помощи.
Его можно использовать только в операторе 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
определяет подпункт помощи в подтаблице помощи,
т.е. ассоциирует дочерние окна, например, пункты меню и
элементы управления диалогов, такие как кнопки,
поля ввода и т.д., с ресурсами файла помощи .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 <идентификатор>
[ <определение числа данных> ]
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 <идентификатор>
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 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 <иконка>, <идентификатор>, <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 <идентификатор>, <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 <текст>, <идентификатор>, <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 <идентификатор> [<опции загрузки>] [<опции памяти>] [<кодовая страница>]
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 SEPARATOR
Описание:
Оператор MENUITEM создает
пункт меню.
Этот оператор можно использовать только в операторах
MENU и SUBMENU.
Когда пользователь выбирает пункт меню,
то система генерирует сообщение WM_COMMAND,
включает в него идентификатор пункта меню
и посылает окну-владельцу меню.
В операторах MENU и SUBMENU
можно описать любое количество операторов MENUITEM,
но каждый из них должен иметь уникальный идентификатор.
Альтернативной формой
оператора MENUITEM является
оператор MENUITEM SEPARATOR,
создающий разделитель меню - горизонтальную черту,
разделяющую два пункта меню.
Разделитель не может быть выбран,
не имеет названия и идентификатора.
- текст
- название пункта меню.
Строка символов с кодами от 1 до 255,
заключенная в двойные кавычки,
или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("),
то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\),
то его тоже следует записать дважды.
Текст может содержать
управляющие символы:
- символ \a или \x08
(Backspace, возврат на одну позицию)
интерпретируется в названиях кнопок и пунктов меню
как символ выравнивания справа.
Т.е. весь текст, следующий за этим символом,
выравнивается справа.
- символ \t или \x09
(Tab, табуляция)
интерпретируется в названиях кнопок и пунктов меню
как символ табуляции.
Как правило, этот символ используется для разделения
названия пункта меню и обозначения клавиши-акселератора.
- символ (#) используется как управляющий в тех случаях,
когда пункты меню или кнопки должны содержать растровое
изображение (bitmap) или иконки.
С этого символа начинается ASCII-нотация идентификатора
растрового изображения/иконки, т.е. если идентификатор
ресурса 401, то ASCII-нотация - это строка
"#401".
Если на кнопке должен отображаться также и текст,
то он следует за ASCII-нотацией иконки и отделяется
от него символом табуляции \t.
- символ тильда (~) интерпретируется
как управляющий в текстовых полях, содержащих названия
кнопок и пунктов меню.
В этом случае, символ тильда (~) отмечает последующий
символ, как символ мнемонического управления.
Когда текст отображается на экране, то символ тильда (~)
не отображается, а мнемонический символ подчеркивается.
Пользователь может выбрать элемент управления, нажав
на клавиатуре соответствующий мнемонический символ.
- идентификатор
- идентификатор пункта меню.
Целое число от -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 [<опции загрузки>] [<опции памяти>] [<кодовая страница>]
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 <текст>, <идентификатор>, <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 <идентификатор>, <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 создает ресурс, содержащий
растровое изображение указателя мыши.
Изображение обычно создается с помощью графического
редактора (например, 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 определяет набор параметров,
настраивающих внешний вид диалогов, меню, окон или
элементов управления.
Процедура обработки диалога, меню, окна или элемента
управления получает эти параметры и обрабатывает
их во время создания окна.
Данные для настройки самостоятельно разработанных
элементов управления могут быть в любом формате.
- параметр
- идентификатор
параметра отображения,
определяющий настраиваемый элемент окна.
Целое число от -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 <текст>, <идентификатор>, <x>, <y>, <ширина>, <высота>[, <стиль>]
Описание:
Оператор PUSHBUTTON создает нажимную кнопку.
Этот элемент управления диалога выглядит как прямоугольник
со слегка срезанными углами, содержащий указанный текст.
Когда пользователь выбирает этот элемент управления
(т.е. щелкает по нему мышью или нажимает мнемосимвол
на клавиатуре), то
родительское окно получает соответствующее сообщение.
Оператор PUSHBUTTON может использоваться
только в операторах DIALOG и WINDOW.
Предопределенный класс для этого элемента управления
WC_BUTTON.
Если не определено иное, то по умолчанию используются
стили BS_PUSHBUTTON и WS_TABSTOP.
- текст
- название кнопки,
т.е. текст, отцентрованный в прямоугольной области,
изображающей кнопку.
Строка символов с кодами от 1 до 255,
заключенная в двойные кавычки,
или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("),
то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\),
то его тоже следует записать дважды.
Текст может содержать
управляющие символы:
- символ \a или \x08
(Backspace, возврат на одну позицию)
интерпретируется в названиях кнопок и пунктов меню
как символ выравнивания справа.
Т.е. весь текст, следующий за этим символом,
выравнивается справа.
- символ \t или \x09
(Tab, табуляция)
интерпретируется в названиях кнопок и пунктов меню
как символ табуляции.
Как правило, этот символ используется для разделения
названия пункта меню и обозначения клавиши-акселератора.
- символ (#) используется как управляющий в тех случаях,
когда пункты меню или кнопки должны содержать растровое
изображение (bitmap) или иконки.
С этого символа начинается ASCII-нотация идентификатора
растрового изображения/иконки, т.е. если идентификатор
ресурса 401, то ASCII-нотация - это строка
"#401".
Если на кнопке должен отображаться также и текст,
то он следует за ASCII-нотацией иконки и отделяется
от него символом табуляции \t.
- символ тильда (~) интерпретируется
как управляющий в текстовых полях, содержащих названия
кнопок и пунктов меню.
В этом случае, символ тильда (~) отмечает последующий
символ, как символ мнемонического управления.
Когда текст отображается на экране, то символ тильда (~)
не отображается, а мнемонический символ подчеркивается.
Пользователь может выбрать элемент управления, нажав
на клавиатуре соответствующий мнемонический символ.
- идентификатор
- идентификатор элемента управления.
Целое число от -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 <текст>, <идентификатор>, <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 <идентификатор>
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 выполняется
до начала обработки любых других операторов,
включая препроцессор RCPP.EXE, удаляющий комментарии,
вставляющий значения вместо макропеременных и т.д.
Длинные имена файлов (например, для файловой системы
HPFS) необходимо заключить в двойные кавычки:
RCINCLUDE "d:\project\long dialog.dlg"
Это позволяет компилятору ресурсов распознавать имена
файлов, содержащие пробелы.
Пример:
RCINCLUDE dialogs.dlg
Существующий скрипт-файл ресурсов объединяется
со скрипт-файлом определения диалогов DIALOGS.DLG.
>>> Назад к оглавлению.
Синтаксис:
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 <текст>, <идентификатор>, <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 <идентификатор>, <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 <идентификатор>, <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 [<опции загрузки>] [<опции памяти>] [<кодовая страница>]
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 используется, то он
должен располагаться после оператора
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 <текст>, <идентификатор>[ ,<стиль>]
BEGIN
<определения пунктов меню>
.
.
.
END
Описание:
Оператор SUBMENU создает подменю
в данном меню.
Подменю - это вертикальный выпадающий список
именованных команд.
В операторе MENU.
можно определить любое количество операторов
SUBMENU.
Каждый оператор должен иметь уникальный идентификатор.
В каждом подменю можно определить любое количество
операторов, описывающих пункты меню (команды) и подменю.
Порядок следования операторов определяет порядок
следования пунктов меню.
- текст
- название подменю, отображаемое как пункт в меню
верхнего уровня.
Строка символов с кодами от 1 до 255,
заключенная в двойные кавычки,
или пустая строка ("").
Если строка должна содержать символ двойных кавычек ("),
то его следует записать дважды.
Если строка должна содержать символ обратный слэш (\),
то его тоже следует записать дважды.
Текст может содержать
управляющие символы:
- символ \a или \x08
(Backspace, возврат на одну позицию)
интерпретируется в названиях кнопок и пунктов меню
как символ выравнивания справа.
Т.е. весь текст, следующий за этим символом,
выравнивается справа.
- символ \t или \x09
(Tab, табуляция)
интерпретируется в названиях кнопок и пунктов меню
как символ табуляции.
Как правило, этот символ используется для разделения
названия пункта меню и обозначения клавиши-акселератора.
- символ (#) используется как управляющий в тех случаях,
когда пункты меню или кнопки должны содержать растровое
изображение (bitmap) или иконки.
С этого символа начинается ASCII-нотация идентификатора
растрового изображения/иконки, т.е. если идентификатор
ресурса 401, то ASCII-нотация - это строка
"#401".
Если на кнопке должен отображаться также и текст,
то он следует за ASCII-нотацией иконки и отделяется
от него символом табуляции \t.
- символ тильда (~) интерпретируется
как управляющий в текстовых полях, содержащих названия
кнопок и пунктов меню.
В этом случае, символ тильда (~) отмечает последующий
символ, как символ мнемонического управления.
Когда текст отображается на экране, то символ тильда (~)
не отображается, а мнемонический символ подчеркивается.
Пользователь может выбрать элемент управления, нажав
на клавиатуре соответствующий мнемонический символ.
- идентификатор
- идентификатор подменю.
Целое число от -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 <идентификатор>, <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 <текст>, <идентификатор>, <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 <идентификатор> [<опции загрузки>] [<опции памяти>] [<кодовая страница>]
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 создает
кнопки и переключатели, состояние которых пользователь
может изменить с помощью мыши или клавиатуры.
Создавая окна этого класса, можно использовать
следующие стили:
- 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 создает
круговой регулятор, позволяющий в аналоговом
(графическом) виде задавать некоторые цифровые значения.
Создавая окна этого класса, можно использовать
следующие стили:
- CCS_360
- регулятор, вращающийся на 360 градусов.
Одновременно устанавливает стиль CSS_NONUMBER,
что предохраняет индикатор значения от показа
неправильных значений.
- CCS_CIRCULARVALUE
- вместо риски на ручке изображается круглая метка.
- CCS_MIDPOINT
- начальная и конечная риски регулятора изображаются
увеличенными.
- CCS_NOBUTTON
- не отображаются кнопки [+] и [-], вращающие регулятор.
- CCS_NONUMBER
- цифровое значение не отображается на регуляторе.
- CCS_NOTEXT
- не отображается подпись под регулятором.
- CCS_POINTSELECT
- после щелчка мыши регулятор сразу поворачивается
в позицию, на которую установлен указатель мыши.
Обычным способом управления является плавное вращение
регулятора.
- CCS_PROPORTIONALTICKS
- длина рисок на шкале регулятора вычисляется
как процент от радиуса регулятора.
>>> Назад к оглавлению.
Класс WC_COMBOBOX создает
комбинированный элемент управления, состоящий
из списка и поля ввода.
Он позволяет пользователю ввести данные, либо набрав их
в поле ввода, либо выбрав из списка.
Создавая окна этого класса, можно использовать
следующие стили:
- CBS_SIMPLE
- создает простой комбинированный элемент управления,
который одновременно отображает и поле ввода, и список.
Пользователь может ввести и отредактировать текст
в поле ввода или выбрать его в списке.
- CBS_DROPDOWN
- создает комбинированный элемент управления,
который обычно отображает только поле ввода.
Список выпадает только тогда, когда пользователь
щелкнет по иконке справа от поля ввода.
Список прячется, если пользователь щелкнет по иконке
еще раз или выберет элемент в списке.
Пользователь может ввести и отредактировать текст
в поле ввода или выбрать его в списке.
- CBS_DROPDOWNLIST
- создает такой же комбинированный элемент,
как и стиль CBS_DROPDOWN, за одним
исключением.
Пользователь не может вводить и редактировать данные
в поле ввода, а может только выбрать элемент списка.
>>> Назад к оглавлению.
Класс WC_CONTAINER создает
контейнер, позволяющий пользователю сгруппировать
объекты в логической манере.
Контейнер может отображать эти объекты в различных
видах и форматах.
Контейнер поддерживает технологию drag-and-drop,
для помещения объекта в контейнер пользователь может
просто подцепить нужный объект и сбросить его
в контейнер.
Создавая окна этого класса, можно использовать
следующие стили:
- CCS_AUTOPOSITION
- автоматическое позиционирование,
в случае, если объекты в контейнере отображаются в виде
иконок, то их расположение упорядочивается, если
происходит одно из следующих событий:
- изменяются размеры окна.
- объекты в контейнере добавляются, удаляются,
сортируются, требуют перерисовки или отфильтровываются.
- изменяется фонт или его размеры.
- изменяется заголовок окна.
- CCS_MINIRECORDCORE
- использование структуры MINIRECORDCORE вместо
RECORDCORE для хранения записей объектов контейнера.
- CCS_READONLY
- только чтение, запрещает редактирование любых
текстов в контейнере.
- CCS_VERIFYPOINTERS
- проверка подтверждения того, что указатели приложения
являются членами связного списка контейнера, перед их
использованием.
- CCS_SINGLESEL
- единичный выбор, позволяет пользователю выбрать
только один объект в контейнере за один раз.
Каждый раз, как только пользователь выбирает объект,
с остальных объектов сбрасывается признак выбора.
- CCS_EXTENDSEL
- расширенный выбор, позволяет пользователю выбрать
один или несколько объектов в контейнере за один раз.
Пользователь может выбрать один объект,
несколько разрозненных объектов или последовательности
объектов в различных границах.
- CCS_MULTIPLESEL
- множественный выбор, позволяет пользователю выбрать
один или несколько объектов в контейнере за один раз
или не выбрать ни одного объекта.
>>> Назад к оглавлению.
Класс 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 создает
комбинированный класс окон, содержащий дочерние
окна многих других классов окон.
Создавая окна этого класса, можно использовать
следующие стили:
- 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
используются следующие флаги создания,
определяющие наличие и вид дочерних окон фрейма:
- 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
используются следующие идентификаторы
служебных окон фрейма:
- FID_CLIENT
- клиентское окно.
- FID_HORZSCROLL
- горизонтальная полоса прокрутки.
- FID_MENU
- меню.
- FID_MINMAX
- кнопки максимизации и минимизации.
- FID_SYSMENU
- системное меню.
- FID_TITLEBAR
- полоса заголовка.
- FID_VERTSCROLL
- вертикальная полоса прокрутки.
>>> Назад к оглавлению.
Класс WC_LISTBOX создает
список, состоящий из текстовых строк, из которых
пользователь может сделать выбор.
Создавая окна этого класса, можно использовать
следующие стили:
- LS_HORZSCROLL
- требуется горизонтальная полоса прокрутки.
- LS_EXTENDSEL
- доступен расширенный выбор.
- LS_MULTIPLESEL
- множественный выбор, позволяет пользователю выбрать
одну или несколько строк в списке за один раз.
Если указан этот стиль, то обязательно должен быть
указан стиль LS_EXTENDSEL.
- LS_NOADJUSTPOS
- размер окна списка не выравнивается
для показа только того количества строк, которое
полностью умещается по вертикали.
- LS_OWNERDRAW
- владелец окна может сам прорисовывать строки списка.
Обычно это текстовые строки с расположенным перед ним
небольшим растровым изображением (bitmap).
>>> Назад к оглавлению.
Класс WC_MENU создает
меню, которое может представляться как горизонтальный
набор пунктов, так и как вертикальный выпадающий список
пунктов меню.
Создавая окна этого класса, можно использовать
следующие стили:
- MS_ACTIONBAR
- список пунктов располагается горизонтально.
Используется для меню верхнего уровня.
Меню, не имеющие этого стиля, отображаются вертикально
в одну или несколько колонок и ассоциируются
с пунктами горизонтального меню в качестве подменю.
- MS_CONDITIONALCASCADE
- условное каскадное меню.
Если обычное выпадающее каскадное меню открывается,
когда пользователь выбирает связанный пункт меню
верхнего уровня, то для открытия условного каскадного
меню пользователь должен щелкнуть мышью по специальному
минизначку в этом пункте.
Если же пользователь просто щелкнет мышью по этому пункту
меню (не открывая условное каскадное меню),
то будет выбран пункт условного каскадного меню,
выполняемый по умолчанию.
Этот пункт снабжается специальной меткой в условном
каскадном меню.
- MS_TITLEBUTTON
- меню может использоваться как кнопка в полосе
заголовка.
Вместе с этим стилем можно применять только стиль
MS_ACTIONBAR.
- MS_VERTICALFLIP
- выпадающее меню раскрывается над связанным
пунктом меню верхнего уровня.
Если меню не помещается на экран, то оно открывается
под этим пунктом.
Обычно меню раскрывается под связанным пунктом и только,
если меню не умещается на экране, то оно открывается
над этим пунктом.
Смотри также
стили пунктов меню.
>>> Назад к оглавлению.
При создании окон класса 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,
могут иметь следующие атрибуты:
- MIA_HILITED
- пункт меню подсвечен.
- MIA_CHECKED
- пункт меню отмечен галочкой.
- MIA_DISABLED
- пункт меню отключен.
- MIA_FRAMED
- вокруг пункта меню рисуется рамочка.
- MIA_NODISMISS
- обычно, выпадающее меню автоматически прячется
после того, как пользователь выберет один из пунктов меню
или переключится на другое окно.
Если же выбранный пункт меню имеет атрибут
MIA_NODISMISS,
то данное подменю, а также и все родительские подменю,
остаются на экране до тех пор, пока пользователь
не закроет его, нажав клавишу Escape.
Подменю остается на экране, даже если пользователь
переключится на другое окно.
>>> Назад к оглавлению.
Класс WC_MLE создает
набор текстовых строк, которые пользователь
может редактировать.
Создавая окна этого класса, можно использовать
следующие стили:
- MLS_BORDER
- вокруг элемента управления рисуется бордюр
в виде тонкой линии.
- MLS_DISABLEUNDO
- запрещает операции отмены внесенных изменений.
- MLS_HSCROLL
- добавляет горизонтальную полосу прокрутки.
- MLS_IGNORETAB
- нажатия на клавишу Tab игнорируются.
Вместо этого владельцу окна посылается
соответствующее сообщение WM_CHAR.
- MLS_READONLY
- только чтение, запрет редактирования строк.
- MLS_VSCROLL
- добавляет вертикальную полосу прокрутки.
- MLS_WORDWRAP
- автоматически переносит слова на следующую строку,
если они не умещаются в окне.
>>> Назад к оглавлению.
Класс 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 создает
полосу прокрутки, позволяющую пользователю
прокрутить содержимое связанного окна.
Создавая окна этого класса, можно использовать
следующие стили:
- SBS_AUTOSIZE
- размер движка зависит от количества данных в окне.
- SBS_AUTOTRACK
- при прокрутке полосы перемещается полное изображение
движка
- SBS_HORZ
- горизонтальная полоса прокрутки.
- SBS_THUMBSIZE
- размер движка вычисляется при создании и
зависит от
общего числа объектов и числа объектов, видимых в окне.
- SBS_VERT
- вертикальная полоса прокрутки.
>>> Назад к оглавлению.
Класс 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 создает
переключатель барабанного типа, т.е. аналог
вращающегося барабана, на который нанесены некоторые
значения, которые демонстрируются в прозрачном окошке.
Т.к. пользователь в каждый момент видит только одно
значение, то этот тип переключателя должен использоваться
для выбора данных, которые интуитивно связаны.
Создавая окна этого класса, можно использовать
следующие стили:
- 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 создает
простой отображаемый элемент, который не отвечает
на выбор его мышью или с помощью клавиатуры.
Создавая окна этого класса, можно использовать
следующие стили:
- SS_AUTOSIZE
- размеры элемента управления автоматически
устанавливаются так, чтобы в окно умещалось все
содержимое.
- SS_BITMAP
- растровое изображение. Смотри SS_ICON.
- SS_BKGNDFRAME
- создает рамку, цвет определяется цветом фона.
- SS_BKGNDRECT
- создает прямоугольник, цвет определяется цветом фона.
- SS_FGNDFRAME
- создает рамку, цвет определяется цветом переднего плана.
- SS_FGNDRECT
- создает прямоугольник, цвет определяется цветом переднего плана.
- SS_GROUPBOX
- рамка, объединяющая элементы управления в группу,
с идентифицирующим текстом в левом верхнем углу.
- SS_HALFTONEFRAME
- создает полутоновую рамку.
- SS_HALFTONERECT
- создает полутоновой прямоугольник.
- SS_ICON
- иконка.
Текст представляет собой строку, содержащую идентификатор
ресурса иконки в одном из двух форматов:
- первый байт 0xFF, второй - младший байт ID ресурса,
третий - старший байт ID ресурса.
- первый байт "#", за ним следует строка с десятичным
представлением ID ресурса, например, "#401".
В этом формате можно использовать и идентификаторы
системных иконок (константы SPTR_*).
- SS_TEXT
- окно с форматированным текстом.
Смотри также
флаги форматирования текста.
- SS_SYSICON
- то же самое, что и SS_ICON, но в качестве
идентификатора иконки указывается один из идентификаторов
системных иконок (константы SPTR_*).
>>> Назад к оглавлению.
При создании окон класса WC_STATIC
со стилем SS_TEXT
используются следующие флаги форматирования текста:
- DT_BOTTOM
- текст выравнивается по нижнему краю окна.
- DT_CENTER
- текст центруется.
- DT_LEFT
- текст выравнивается по левой границе окна.
- DT_RIGHT
- текст выравнивается по правой границе окна.
- DT_TOP
- текст выравнивается по верхнему краю окна.
- DT_VCENTER
- текст выравнивается вертикально по центру окна.
- DT_WORDBREAK
- текст представляется многострочным,
остатки строки, не умещающиеся в окно, переносятся
в начало следующей строки.
>>> Назад к оглавлению.
Класс 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 обычно задаются в виде шестнадцатиричной
константы в формате
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