Страница 27 из 51 Описание меню в ресурсах Прототип: Имя меню MENU [Опции] {Элементы меню} - Имя меню:
- Обозначает имя меню. (Это может быть просто целое число, идентифицирующее меню).
MENU - Этот оператор указывает компилятору ресурсов на то, что создается меню. - Опции:
- DISCARABLE - Меню может быть удалено из памяти, если оно больше не используется.
FIXED - Меню постоянно находится в памяти. LOADONCALL - Меню загружается при обращении. MOVEABLE - Меню может быть перемещено в другую область памяти. PRELOAD - Меню загружается при запуске программы. - Элементы меню:
- При создании меню могут использоваться два типа операторов: MENUITEM - Определяет конечный пункт меню. POPUP - Определяет выпадающее меню, которое может содержать подпункты, также задаваемые с помощью MENUITEM и POPUP
Общий вид операторов следующий: MENUITEM "ItemName", MenuID [Опции] POPUP "PopupName", [Опции]
ItemName - Задает название пункта меню, например File или Help. MenuID - Это уникальное целое значение, которое связано с пунктом меню и посылается приложению при выборе данного пункта. (Обычно эти значения содержатся в виде констант в библиотечном файле, который затем включается как в программный файл, так и в RC-файл ресурсов. PopupName - Определяет название выпадающего меню. Опции используемые с операторами MENUITEM и POPUP - CHECKED
- РЯДОМ С НАЗВАНИЕМ ПУНКТА МЕНЮ МОЖЕТ СТОЯТЬ МЕТКА ВЫБОРА. (НЕ ИСПОЛЬЗУЕТСЯ ДЛЯ МЕНЮ ВЕРХНЕГО УРОВНЯ.)
- GRAYED
- Название пункта меню выделяется серым цветом и не может быть выбрано.
- HELP
- Может быть связана с коммандой вызова помощи. Применяется с MENUITEM.
- INACTIVE
- Пункт меню не может быть выбран.
- MENUBARBREAK
- Если используется для меню верхнего уровня, то название пункта будет записано с новой строки. Если используется для выпадающих меню, то название пункта будет размещено в новом столбце. В этом случае оно будет отделено чертой.
- MENUBREAK
- То же, что и MENUBARBREAK, но разделительная черта не используется.
Пример создания меню: MENU1.RC #include "id.h" MYMENU MENU { POPUP "&One" { MENUITEM "&Alpha", IDM_ALPHA MENUITEM "&Beta", IDM_BETA } POPUP "&Two" { MENUITEM "&Gamma", IDM_GAMMA POPUP "&Delta" { MENUITEM "&Epsillon", IDM_EPSILON MENUITEM "&Zeta", IDM_ZETA } MENUITEM "&Eta", IDM_ETA MENUITEM "&Theta", IDM_THETA } MENUITEM "&Help", IDM_HELP }
// ID.H #define IDM_ALPHA100 #define IDM_BETA101 #define IDM_GAMMA102 #define IDM_DELTA103 #define IDM_EPSILON104 #define IDM_ZETA105 #define IDM_ETA106 #define IDM_THETA107 #define IDM_HELP108
Когда меню определено, его можно включить в программу, указывая имя меню при создании окна. В частности, необходимо передать указатель на его имя в последнем оргументе функции Create(). Пример: Create(NULL, "Пример меню",WS_OVERLAPPEDWINDOW, rectDefault, NULL,"MYMENU");
Остальное за обработчиком сообщений WM_COMMAND. |