User and Graphics Device Interface Objects, страница 9

Указывает на строку с нулевым символом в конце, которая содержит имя ресурса меню. В качестве альтернативы, этот параметр может состоять из идентификатора ресурса в слове младшего разряда и нуля в старшем слове. Чтобы создать это значение, используйте макрокоманду MAKEINTRESOURCE.

Возвращаемое значение

В случае успешного завершения, возвращаемое значение - дескриптор ресурса меню.

В случае неудачи, возвращаемое значение - NULL. Чтобы получить расширенную информацию об ошибке, вызовите GetLastError.

Замечания

Функция DestroyMenu используется, прежде чем приложение закрывается, чтобы уничтожить меню и свободную память занятую под меню.

См. Также

LoadMenuIndirect, MAKEINTRESOURCE

LoadMenuIndirect

Функция LoadMenuIndirect загружает указанный шаблон меню в памяти.

HMENU LoadMenuIndirect (

    КОНСТАНТА MENUTEMPLATE *lpMenuTemplate      // адрес шаблона меню

  );           

Параметры

lpMenuTemplate

Windows NT: Указывает на шаблон меню.

Windows 95: Указывает на шаблон меню или расширенный шаблон меню.

Шаблон меню состоит из структуры MENUITEMTEMPLATEHEADER, сопровождаемой одними или более непрерывными структурами MENUITEMTEMPLATE. В Windows 95, расширенный шаблон меню состоит из структуры MENUEX_TEMPLATE_HEADER, сопровождаемой одними или более непрерывными структурами MENUEX_TEMPLATE_ITEM. 

Возвращаемое значение

В случае успешного завершения, возвращаемое значение - дескриптор меню.

В случае неудачи, возвращаемое значение - NULL. Чтобы получить расширенную информацию об ошибке, вызовите GetLastError.

Замечания

И для ANSI и Unicode версии этой функции, строки в структуре MENUITEMTEMPLATE должны быть Unicode.

См. Также

LoadMenu, MENUITEMTEMPLATE, MENUITEMTEMPLATEHEADER

MENUITEMTEMPLATEHEADER

typedef struct {

    WORD versionNumber; // номер версии; должен быть нуль

    WORD offset;  // Смещение структуры MENUITEMTEMPLATE 

} MENUITEMTEMPLATEHEADER;

Структура MENUITEMTEMPLATEHEADER определяет заголовок для шаблона меню. Полный шаблон меню состоит из заголовка и один или большего количества списков пункта меню.

Элементы

versionNumber

Определяет номер версии. Этот элемент должен быть равен нулю.

offset

Определяет смещение, в байтах, от конца заголовка. Список пунктов меню начинается по этому смещению. Обычно, это - нуль, и список пунктов меню следует немедленно после заголовка.

Замечания

Одна или большее количество структур MENUITEMTEMPLATE объединены, чтобы сформировать список пунктов меню.

См. Также

LoadMenuIndirect, MENUITEMTEMPLATE

MENUITEMTEMPLATE

typedef struct {

WORD mtID;  //     Идентификатор пункта меню (опущен для всплывающих пунктов)

WCHAR mtString [1]; // строка с нулевым символом в конце для пункта меню

} MENUITEMTEMPLATE;

Структура MENUITEMTEMPLATE определяет пункт меню в шаблоне меню.

Элементы

mtOption

Определяет один или большее количество следующих предопределенных опций меню, которые управляют видом пункта меню:

Значение    Описание

MF_CHECKED

 Указывает, что пункт меню имеет галочку рядом

MF_GRAYED

 Указывает, что пункт меню первоначально неактивен и выведен серым.

MF_HELP

 Указывает, что пункт меню имеет вертикальный разделитель слева.

MF_MENUBARBREAK

 Указывает, что пункт меню помещен в новый столбец. Старые и новые столбцы отделяются полосой.

MF_MENUBREAK

 Указывает, что пункт меню помещен в новый столбец.

MF_OWNERDRAW

 Указывает, что окно владельца меню ответственно за рисование всех визуальных аспектов пункта меню, включая высвеченные, отмеченные и неактивные состояния. Опция не допустима для пункта в строке меню.

MF_POPUP

 Указывает, что пункт - всплывающий пункт (всплывающий пункт вызывает всплывающее меню, когда пользователь выбирает пункт).