Контрольная работа: Сообщения меню приложения Windows
Функция ModifyMenu () После изменения состояния элемента "Exit" с разрешенного на серое и наоборот, необходимо изменить текст в элементе, от которого зависит это состояние. Это изменение производится посредством вызова функции ModifyMenu (), которой передаются пять аргументов:
BOOL ModifyMenu (HMENU hMenu, UINT uItem, UINT uFlags, UINT uNewItem, LPCTSTR lpszNewItem)
Параметры:
hMenu - хэндл меню, которому принадлежит пункт меню.
uItem - пункт меню, состояние которого изменяется.
uFlags - комбинация битовых флагов, во-первых, определяющих элемент, подлежащий изменению (MF_BYCOMMAND или MF_BYPOSITION), а во-вторых, определяющих состояние элемента после изменения.
uNewItem - указывает или идентификатор измененного элемента, или хэндл нового меню (если, конечно, в третьем аргументе установлен флаг MF_POPUP).
lpszNewItem- содержимое нового измененного пункта меню. Зависит от установленных флагов uFlags. Установлен флаг MF_BITMAP - параметр содержит хэндл bitmap'а. Установлен флаг MF_STRING - параметр содержит указатель на строку символов и т.д.
Возвращаемое значение: при успешном выполнении - TRUE, иначе - FALSE.
Функция DeleteMenu () удаляет элемент из меню и освобождает все связанные с ним ресурсы. Если удаляемый элемент указывает на временное меню, то функция DeleteMenu удаляет и это временное меню. Синтаксис функции:
BOOL DeleteMenu (HMENU hMenu, UINT uPosition, UINT uFlags)
Параметры:
hMenu - хэндл меню, которому принадлежит пункт меню.
uPosition - определяет удаляемый элемент. Его значение связано со значением параметра uFlags.
uFlags - задает способ истолкования параметра uPosition пункта меню. Если uFlags=MF_BYCOMMAND (значение по умолчанию), то значение uPosition равно идентификатору команды удаляемого элемента. Если же uFlags=MF_BYPOSITION, то значение uPosition равно позиции удаляемого элемента в меню.
Возвращаемое значение: при успешном выполнении - TRUE, иначе - FALSE.
Функция RemoveMenu () удаляет элемент из меню, не разрушая связанные с ним ресурсы. Эти ресурсы можно использовать в дальнейшем. Синтаксис функции:
BOOL RemoveMenu (HMENU hMenu, UINT uPosition, UINT uFlags)
Параметры:
hMenu - хэндл меню, которому принадлежит пункт меню.
uPosition - определяет удаляемый элемент. Его значение связано со значением параметра uFlags.
uFlags - задает способ истолкования параметра uPosition пункта меню. Если uFlags=MF_BYCOMMAND (значение по умолчанию), то значение uPosition равно идентификатору команды удаляемого элемента. Если же uFlags=MF_BYPOSITION, то значение uPosition равно позиции удаляемого элемента в меню.
Возвращаемое значение: при успешном выполнении - TRUE, иначе - FALSE.
Для разрушения меню вызывают функцию DestroyMenu (). Эта функция разрушает заданное меню и освобождает ресурсы, которые меню занимает. Эту функцию окна вызывают для разрушения тех меню, которые они создали, но не подключили к себе. Подключенные Меню автоматически разрушаются при разрушении окна. Синтаксис функции:
BOOL DestroyMenu (HMENU hMenu)
Параметры:
hMenu - хэндл меню, которому принадлежит пункт меню.
Возвращаемое значение: при успешном выполнении - TRUE, иначе - FALSE
Функция GetMenu () возвращает дескриптор главного меню окна hWnd.