| Программирование для IBM OS/2© Александр Фролов, Григорий ФроловТом 25, М.: Диалог-МИФИ, 1993, 286 стр. 
 3.2. Подготовка шаблона менюПроще всего создать меню на базе шаблона, записанного в файле описания ресурсов приложения. Такой шаблон имеет следующий вид: MENU MenuID BEGIN ... END В качестве MenuID вы должны указать идентификатор меню. Если вы создаете меню верхнего уровня, идентификатором меню должен служить идентификатор ресурсов, указанный при создании главного окна функцией WinCreateStdWindow . Между строками BEGIN и END (которые, кстати, можно заменить скобками { и }, соответственно) располагаются операторы описания временных меню SUBMENU и операторы описания отдельных строк меню MENUITEM . Для примера приведем сокращенный образец шаблона меню, взятый из приложения MENUAPP, исходные тексты которого будут приведены в этой главе: 
MENU ID_APP_FRAMEWND
BEGIN
  SUBMENU "~File",             IDM_FILE
    BEGIN
	MENUITEM  "~New...",     IDM_FILE_NEW
	MENUITEM  "~Open...",    IDM_FILE_OPEN
	MENUITEM  SEPARATOR
	MENUITEM  "~Save...",    IDM_FILE_SAVE
	MENUITEM  "Save ~as...", IDM_FILE_SAVEAS
	MENUITEM  SEPARATOR
	MENUITEM  "~Exit",       IDM_FILE_EXIT
    END
  SUBMENU "~Help", IDM_HELP
    BEGIN
	MENUITEM  "Help ~index...",     IDM_HELP_INDEX
	MENUITEM  "~General help...",   IDM_HELP_GENERAL
	MENUITEM  "~Using help...",     IDM_HELP_USING
	MENUITEM  "~Keys help...",      IDM_HELP_KEYS
	MENUITEM  SEPARATOR
	MENUITEM  "~Product information...",IDM_HELP_ABOUT
    END
END
В этом шаблоне описано меню с идентификатором ID_APP_FRAMEWND. Этот идентификатор был использован при создании главного окна приложения. В меню с помощью операторов SUBMENU определено два временных меню: File и Help. Каждое временное меню имеет свой идентификатор, указанный в операторе SUBMENU. Описание каждого временного меню ограничено операторами BEGIN и END. Общий вид оператора SUBMENU представлен ниже: SUBMENU text, id В поле text должна располагаться строка, которая будет отображаться в меню верхнего уровня. Эта строка должна быть заключена в кавычки. Если в строке имеется символ ~, следующий за ним символ изображается подчеркнутым и используется для ускоренного выбора в комбинации с клавишей <Alt>. В качестве идентификатора вы можете использовать целое число или символические константы, не совпадающие с идентификаторами других меню или строк меню. Оператор описания строк меню имеет следующий вид: MENUITEM text, id, style, attribute Поле text определяет текстовую строку, которая будет отображаться в строке меню. Для обеспечения ускоренного доступа к строке меню вы можете выделить один из символов строки подчеркиванием, указав перед ним символ ~. Идентификатор id должен быть указан как целое число или символическая константа. В качестве значения для поля style, определяющего
стиль строки меню, вы можете использовать одну из
следующих констант: 
 В поле attribute оператора MENUITEM можно указывать
одно из следующих значений, влияющих на внешний
вид соовтетствующей строки меню:  
 При необходимости приложение может изменять атрибуты строк меню, посылая ему сообщение MM_SETITEMATTR . Посылая меню сообщение MM_QUERYITEM ATTR можно узнать текущие атрибуты заданной строки. 
 | 


![[Назад]](../../prev.gif)
![[Содеожание]](../../sod.gif)
![[Дальше]](../../next.gif)