UINT GetMenuItemID (
HMENU hMenu , // дескриптор меню
int nPos // позиция пункта меню
);
Параметры
hMenu - идентифицирует меню, содержащее пункт меню, идентификатор которого извлекается.
nPos - определяет относительную позицию (отсчет начинается с нуля) пункта меню, идентификатор которого извлекается.
Возвращаемые значения
В случае успеха возвращается идентификатор данного пункта меню.
Если идентификатор меню равен NULL, или указанный пункт меню открывает подменю, возвращается 0 xFFFFFFFF .
См. также
GetMenuItemCount, GetMenuString .
GetMailslotInfo
Функция GetMailslotInfo извлекает информацию об указанном мэйлслоте.
BOOL GetMailslotInfo (
HANDLE hMailslot , // дескриптор мэйлслота
LPDWORD lpMaxMessageSize , // адрес максимального размера сообщения
LPDWORD lpNextSize , // адрес размера следующего сообщения
LPDWORD lpMessageCount , // адрес количества сообщений
LPDWORD lpReadTimeout // адрес тайм - аута чтения
);
Параметры
hMailslot - идентифицирует мэйлслот. Этот дескриптор должна создать функция CreateMailslot .
lpMaxMessageSize - когда функция возвращает управление, указывает на буфер, определяющий максимальный размер письма в байтах, допустимый для этого мэйлслота. Эта величина должна быть больше или равна значению параметра cbMaxMsg функции CreateMailslot , создавшей мэйлслот. Значение параметра может быть равно нулю.
lpNextSize - когда функция возвращает управление, указывает на буфер, определяющий размер следующего письма в байтах. Следующая величина имеет специальное значение:
MAILSLOT_NO_MESSAGE - следующее сообщение отсутствует.
Значение параметра может быть равно нулю.
lpMessageCount - когда функция возвращает управление, указывает на буфер, определяющий количество сообщений, ждущих прочтения. Значение параметра может быть равно нулю.
lReadTimeout - указывает на буфер, определяющий количество времени, в миллисекундах, которое операция чтения может ждать сообщения, записанного в мэйлслот, до наступления тайм-аута. Параметр заполняется, когда функция возвращает управление. Значение параметра может быть равно нулю.
Возвращаемые значения
В случае успеха возвращается ненулевое значение.
В случае неудачи возвращается нуль. Для получения дополнительной информации об ошибке вызовите функцию GetLastError .
См. также
CreateMailslot, SetMailslotInfo .
GetMenuState
Функция GetMenuState извлекает флаги меню, ассоциированные с указанным пунктом меню. Если пункт меню открывает подменю, функция также возвращает количество пунктов в подменю.
Функция GetMenuState заменена функцией GetMenuItemInfo . Вы, тем не менее, можете продолжать использовать функцию GetMenuState , если у вас нет необходимости в дополнительных возможностях функции GetMenuItemInfo .
UINT GetMenuState (
HMENU hMenu , // дескриптор меню
UINT uId , // запрашиваемый пункт меню
UINT uFlags // флаги меню
);
Параметры
hMenu - идентифицирует меню, которое содержит пункт, чьи флаги извлекаются.
uId - определяет пункт меню, для которого извлекаются флаги меню.
uFlags - определяет, как интерпретируется значение параметра uId . Параметр uFlags должен принимать одно из следующих значений:
Значение |
Пояснение |
MF_BYCOMMAND |
Указывает, что uPosition принимает идентификатор пункта меню. Флаг MF_BYCOMMAND является флагом по умолчанию, если явно не задан ни флаг MF_BYCOMMAND, ни MF_BYPOSITION. |
MF_BYPOSITION |
Указывает, что uPosition принимает относительную, отсчитываемую с нуля позицию пункта меню. |
Возвращаемые значения
Если указанного пункта меню не существует, возвращается 0 xFFFFFFFF .
Если пункт меню открывает подменю, младший байт возвращаемого значения содержит флаги меню, связанные с пунктом, а старший байт содержит число пунктов в подменю.
В остальных случаях возвращаемое значение является маской флагов меню. Ниже приведены флаги меню, связанные с пунктом меню:
Значение |
Пояснение |
MF_CHECKED |
Помещает отметку в пункт меню (только для выпадающих меню, меню быстрого вызова команд и подменю). |
MF_DISABLED |
Запрещает пункт меню. |
MF_GRAYED |
Запрещает пункт меню и делает его затененным. |
MF_HILITE |
Подсвечивает пункт меню. |
MF_MENUBARBREAK |
То же, что и флаг MF _ MENUBREAK, за исключением выпадающих меню, меню быстрого вызова команд и подменю, где новый столбец от старого столбца отделяется вертикальной чертой. |
MF_MENUBREAK |
Помещает новый пункт в новой строке (для строк меню) или в новый столбец (для выпадающих меню, меню быстрого вызова команд и подменю) без разделения столбцов. |
MF_SEPARATOR |
Создает горизонтальную разделяющую линию (для выпадающих меню, меню быстрого вызова команд и подменю). |
См. также
GetMenu, GetMenuItemCount, GetMenuItemID, GetMenuItemInfo, GetMenuString .
SetMenuItemBitmaps
Функция SetMenuItemBitmaps связывает указанный битовый образ с пунктом меню. В зависимости от того, является ли пункт меню отмеченным или нет, Windows отображает соответствующий битовый образ в пункте меню.
BOOL SetMenuItemBitmaps (
HMENU hMenu , // дескриптор меню
UINT uPosition , // пункт меню для получения нового битового образа
UINT uFlags , // флаги пункта меню
HBITMAP hBitmapUnchecked , // дескриптор битового образа
// для неотмеченного состояния
HBITMAP hBitmapChecked // дескриптор битового образа
// для отмеченного состояния
);