Visual C++ MFC в подробностях
Страница 27. Описание меню в ресурсах


Описание меню в ресурсах

Прототип: Имя меню 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.

 

 
« Предыдущая статья   Следующая статья »