Inactive - пункт неактивен (не генерирует wm_command), но отображается обычным образом, несовместимо с grayed.
MENUBREAK - следующие пункты меню отображаются с новой строки.
HELP - этот и все следующие пункты меню "прижимаются" к правому краю строки меню.
В описании всплывающего меню могут также встречаться как подменю, так и пункты меню, описываемые точно так же с помощью директив POPUP и MENUITEM. Кроме того, внутри всплывающих меню можно нарисовать горизонтальную черту, включив в качестве описания строки меню строку
MENUITEM SEPARATOR
Может дополнительно использоваться признак CHECKED, означающий, что пункт меню выбран и отмечен галочкой.
Использование меню
Для указания на использование меню из ресурса в описании оконного класса достаточно указать его имя, как оно описано в ресурсе, например
wndclass.lpszMenuName := 'MyMenu';
или, если при описании меню использовался числовой идентификатор, например, 12:
wndclass.lpszMenuName := pointer(12);
или
wndclass.lpszMenuName := '#12';
Все окна этого класса будут иметь указанное меню. Чтобы указать свое меню для конкретного окна при его создании, необходимо загрузить описание меню из ресурса:
hMenu := LoadMenu(hInstance, 'MyMenu');
и затем передать полученный хэндл меню hMenu в качестве девятого параметра функции CreateWindow.
Наконец, имея хэндл загруженного описания меню, можно изменить меню уже существующего окна, вызвав функцию
SetMenu(hwnd, hMenu);
а просто узнать хэндл меню окна — с помощью функции
GetMenu(hWnd);
Любое связанное с окном меню уничтожается при уничтожении окна. Однако загруженные, но не связанные с окнами меню должны быть явно удалены при помощи DestroyMenu(hMenu).
- Подключение файлов ресурсов к программе
- Ресурсы пользователя
- Inactive - пункт неактивен (не генерирует wm_command), но отображается обычным образом, несовместимо с grayed.
- Основные сообщения меню
- Использование таблицы акселераторов
- Окна диалога
- Библиотеки dll
- Синтаксис исходного текста dll
- Поиск используемых dll
- Подключение dll на этапе загрузки
- Подключение dll на этапе выполнения
- Использование ресурсов из dll
- Задание
- Варианты заданий: