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

Параметр

 Описание

MF_BITMAP

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

MF_OWNERDRAW

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

MF_STRING

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

Таблица 12

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

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

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

Замечания

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

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

Следующий список описывает флажки, которые могут быть установлены в параметре 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 and uIDNewItem игнорируются.

MF_STRING

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

MF_UNCHECKED

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

Таблица 13