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

Таблица 4

mtID

Определяет идентификатор пункта меню пункта команды; пункт команды посылает сообщение команды окну владельца. Структура MENUITEMTEMPLATE для всплывающего пункта не содержит mtID элемент.

mtString

Определяет строку с нулевым символом в конце для пункта меню.

См. Также

LoadMenuIndirect, MENUITEMTEMPLATEHEADER

AppendMenu

Функция AppendMenu конкатенирует новый пункт к концу указанного меню. Приложение может использовать эту функцию, чтобы определить содержание, появление и поведение пункта меню.

BOOL AppendMenu (

    hMENU hMenu,           // дескриптор меню

    UINT uFlags ,  // флажки пункта меню

    UINT uIDNewItem ,    // идентификатор пункта меню или всплывающий дескриптор меню

    LPCTSTR lpNewItem             // содержание

  );           

Параметры

hMenu

Идентифицирует меню, которое будет изменено.

uFlags

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

uIDNewItem

Определяет или идентификатор нового пункта меню или, если параметр uFlags установлен к MF_POPUP, дескриптор всплывающего меню.

lpNewItem

Определяет содержание нового пункта меню. Интерпретация lpNewItem зависит от того, включает ли параметр uFlags MF_BITMAP, MF_OWNERDRAW, или флажок MF_STRING, и проводится следующим образом:

Параметр

 Описание

MF_BITMAP

Содержит растровый дескриптор.

MF_OWNERDRAW

Содержит 32-разрядное значение, предоставленное приложением, которое может использоваться, чтобы утвердить, что дополнительные данные касались пунктов меню. Значение находится в элементе структуры itemData, указанной параметром lparam WM_MEASURE или WM_DRAWITEM сообщения, посылаемого, когда меню создано, или его вид модифицируется.

MF_STRING

Содержит указатель на строку с нулевым символом в конце.

Таблица 5

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

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

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

Замечания

Приложение должно вызвать функцию DrawMenuBar всякий раз, изменяя меню,  или если меню нет в отображаемом окне.

Следующие флажки должны быть установлены в параметре uFlags:

Параметр

 Описание

MF_BITMAP

 Использует растр как пункт. Параметр lpNewItem содержит дескриптор растра.

MF_CHECKED

 Помещает галочку рядом с пунктом. Если приложение обеспечивает растры для галочки (см. SetMenuItemBitmaps), этот флажок отображает растр галочки рядом с пунктом меню.

MF_DISABLED

 Отключает пункт меню, чтобы он не мог быть выбран, но флажок делает его серым.

MF_ENABLED

 Дает возможность пункту меню быть выбранным и восстанавливает его из отключенного состояния.

MF_GRAYED

 Отключает пункт меню и подсвечивает его серым, так что он не может быть выбран.

MF_MENUBARBREAK

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

MF_MENUBREAK

 Помещает пункт в новую строку (для строкового меню) или в новом столбце (для всплывающих меню) без отделения столбцов.

MF_OWNERDRAW

 Определяет, что пункт - отображается владельцем пункта. Прежде, чем меню впервые отображается, окно, которое обладает меню, получает WM_MEASUREITEM сообщение, чтобы отыскать ширину и высоту пункта меню. Затем посылается WM_DRAWITEM сообщение процедуре окна владельца всякий раз, когда пункт меню должен быть обновлен.

MF_POPUP

 Определяет, что пункт меню - всплывающий пункт; то есть, выбирая его, активизируется всплывающее меню. Параметр uIDNewItem определяет дескриптор всплывающего меню. Этот флажок используется, чтобы добавить всплывающий пункт к строке меню или к всплывающему меню.

MF_SEPARATOR

 Рисует горизонтальную разделительную линию. Этот флажок используется только во всплывающем меню. Строка не может быть недоступна, заблокирована, или высвечена. Параметры lpNewItem и uIDNewItem игнорируются.

MF_STRING

 Определяет, что пункт меню - текстовая строка; lpNewItem указывает на строку.

MF_UNCHECKED

 Не помещает галочку рядом с пунктом (значение по умолчанию). Если приложение обеспечивает растры галочки (см. SetMenuItemBitmaps), этот флажок отображает разотмеченный растр рядом с пунктом меню.