SetMenuInfo • Windows 98 • Windows 2000 |
||||||||||||
Описание |
Функция SetMenuInfo устанавливает информацию для указанного меню. |
|||||||||||
Синтаксис |
BOOL SetMenuInfo( HMENU hMenu, LPCMENUINFO Ipcmi ) |
|||||||||||
Параметры |
||||||||||||
hMenu |
HMENU. Дескриптор меню. |
|||||||||||
Ipcmi |
LPCMENUINFO. Указатель на структуру MENUINFO, которая состоит из констант. Определение структуры MENUINFO приведено в описании функции GetMenuInfo. |
|||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения функции возвращаемое значение отлично от нуля; в ином случае возвращаемое значение — нуль. |
|||||||||||
Включаемый файл |
winuser.h |
|||||||||||
См. также |
GetMenuInfo |
|||||||||||
SetMenultemBitmaps • Windows 98 • Windows 2000 |
||||||||||||
Описание |
В Windows для отметки пунктов меню применяется предусмотренное по умолчанию растровое изображение галочки. Его можно заменить определяемым пользователем растровым изображением с помощью функции SetMenultemBitmaps. Размеры растрового изображения галочки зависят от разрешающей способности экрана в системе, где выполняется приложение. Для определения этих размеров в целях масштабирования растрового изображения в соответствии с допустимыми размерами применяется функция GetSystemMetrics. Отметки, определяемые пользователем, могут украсить прикладную программу; для этого не требуется большой объем памяти. После назначения нового растрового изображения функция CheckMenuItem будет автоматически использовать его для отметки или снятия отметки с пункта меню. |
|||||||||||
Синтаксис |
BOOL SetMenuItemBitmaps( HMENU hmenu, UINT ultem, UINT uFlags, HBITMAP hbmUnchecked, HBITMAP hbmChecked) |
|||||||||||
Параметры |
||||||||||||
hmenu |
HMENU. Дескриптор меню. |
|||||||||||
ultem |
UINT. Идентификатор или позиция пункта меню, для которого должно быть установлено растровое изображение. |
|||||||||||
uFlags |
UINT. Указывает способ интерпретации параметра ultem. Этот параметр должен иметь одно из значений, приведенных в табл. 6.17. |
|||||||||||
hbm Unchecked |
HBITMAP. Дескриптор растрового изображения, которое должно быть показано, когда пункт меню не отмечен. Если этот параметр имеет значение NULL, область отметки, которая находится рядом с неотмеченным пунктом меню, остается пустой. |
|||||||||||
Таблица 6.17. ЗначенияпараметровuFlags функцииSetMenultemBitmaps |
||||||||||||
Значение |
Описание |
|||||||||||
MF_BYCOMMAND |
Значение irftem представляет собой идентификационное значение меню. |
|||||||||||
MF_BYPOSITION |
Значение uffem представляет собой относительную позицию пункта меню с отсчетом от нуля. |
|||||||||||
hbmChecked |
HBITMAP. Дескриптор растрового изображения, которое должно быть показано, когда пункт меню отмечен. Данный параметр может иметь значение NULL, но это не рекомендуется. |
|||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения функции возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE. |
|||||||||||
Включаемый файл |
winuser.h |
|||||||||||
См. также |
CheckMenuItem, CheckMenuRadioItem, GetMenu, GetMenuState |
|||||||||||
Пример |
См. пример для функции GetMenuState. |
|||||||||||
SetMenultemlnfo * Windows 98 * Windows 2000 |
||||||||||||
Описание |
Функция SetMenultemlnfo позволяет изменить информацию о пункте меню. С помощью этой функции можно изменить текст или другие атрибуты пункта меню. |
|||||||||||
Синтаксис |
BOOL SetMenuItemInfo( HMENU hMenu, UINT ultem, BOOL bByPosition, LPMENUITEMINFO Ipmii ) |
|||||||||||
Параметры |
||||||||||||
hMenu |
HMENU. Дескриптор меню, содержащего пункт, которой должен быть изменен. |
|||||||||||
ultem |
UINT. Идентификатор или позиция пункта меню, который должен быть изменен. Смысл этого члена зависит от значения параметра bByPosition. |
|||||||||||
bByPosition |
BOOL. Устанавливается равным FALSE, если параметр ultem содержит идентификатор пункта меню. |
|||||||||||
Ipmii |
LPMENUITEMINFO. Указатель на структуру MENUITEMINFO, которая определяет новую информацию для указанного пункта меню. Определение структуры MENUITEMINFO приведено в описании функции GetMenu-Itemlnfo. |
|||||||||||
Возвращаемое значение |
||||||||||||
BOOL. TRUE, если меню было изменено; в ином случае — FALSE. |
||||||||||||
Включаемый файл |
winuser.h |
|||||||||||
См. также |
GetMenuItemlnfo |
|||||||||||
Пример |
В следующем примере показано, как изменить опцию меню с помощью функции SetMenultemlnfo. Пункт меню Test! сменяется пунктом New Item! при его выборе. Идентификатор пункта меню также меняется, и при выборе этого пункта отображается окно сообщения. |
|||||||||||
См. \local-sources\chap06\06-25.txt |
||||||||||||
TrackPopupR |
Лепи • Windows 98 • Windows 2000 |
|||||||||||
Описание |
Функция TrackPopupMenu отображает подменю в любом месте экрана. Всплывающее меню отображается после установки левого верхнего угла в точке экрана с координатами х,у. Чтобы меню могло находиться за пределами клиентской области приложения, используются экранные координаты. Для всплывающего меню вырабатываются обычные сообщения выбора пункта меню и сообщения WM_COMMAND Windows. Всплывающее меню исчезает после выполнения выбора или после щелчка на другой области экрана. Это средство широко применяется в приложениях Windows 98, а также в самой операционной системе, в связи с нажатием правой кнопки мыши. Функция TrackPopupMenu применяется для отображения "контекстно-зависимых" меню в приложении, когда пользователь нажимает правую кнопку мыши над окном приложения. Это меню можно вызывать и с помощью левой кнопки мыши, но в Windows 98 это не принято, и такой метод не должен использоваться. Дополнительная информация приведена в руководстве по стилю в главе 1 . |
|||||||||||
Синтаксис |
BOOL TrackPopupMenu( HMENU hMenu, UINT uFlags, int x, int y, int nReserved, HWND hwnd, LPCRECT Iprc ) |
|||||||||||
Параметры |
||||||||||||
hMenu |
HMENU. Дескриптор всплывающего меню, которое должно быть отображено. Всплывающее меню можно создать, применив функцию Create-PopupMenu или вызвав функцию GetSubMenu для выборки дескриптора всплывающего меню, связанного с существующим пунктом меню. |
|||||||||||
и Flags |
UINT. Указывает позиционирование и другие опции всплывающего меню. Этот параметр может иметь нуль и более значений, перечисленных в табл. 6.18. Флажки анимации могут применяться, только если в системе заданы соответствующие установки. Информация об этом может быть получена с помощью функции SystemParametersInfo. Анимация также игнорируется, если в меню применяется эффект перехода (постепенное введение или выведение изображения). |
|||||||||||
Таблица 6. 18. ЗначенияпараметровuFlags функцииTrackPopupMenu |
||||||||||||
Значение |
Описание |
|||||||||||
TPM_BOTTOMALIGN |
Установить нижнюю часть меню вровень с координатой, указанной параметром у. |
|||||||||||
TPM_CENTERALIGN |
Выровнять меню по горизонтали вокруг координаты центра, указанной параметром х. |
|||||||||||
TPM_HORNEGANIMATION |
Выполнить анимацию меню слева направо. |
|||||||||||
TPM_HORPOSANIMATION |
Выполнить анимацию меню справа налево. |
|||||||||||
TPM_NOANIMATION |
Отобразить меню без использования анимации. |
|||||||||||
TPM_VERNEGANIMATION |
Выполнить анимацию меню снизу вверх. |
|||||||||||
TPM_VERPOSANIMATION |
Выполнить анимацию меню сверху вниз. |
|||||||||||
TPMJ.EFTALIGN |
Установить левую сторону меню вровень с координатой, указанной параметром х. Это — горизонтальное выравнивание, заданное по умолчанию. |
|||||||||||
Значение |
Описание |
|||||||||||
TPM_LEFTBUTTON |
Отслеживать действия, выполняемые левой кнопкой мыши. Это — опция отслеживания, применяемая по умолчанию. |
|||||||||||
TPM_NONOTIFY |
Никакие уведомительные сообщения не отправляются при щелчке на пункте меню. |
|||||||||||
TPM_RECURSE |
Отобразить меню, когда другое меню уже показано. Это позволяет иметь в меню дополнительные контекстные меню. |
|||||||||||
TPM_RETURNCMD |
Возвращать идентификатор выбранного пункта меню вместо отправки сообщения WM_COMMANO. Возвращаемое значение равно 0, если возникает ошибка или не выбран ни один пункт меню; возвращаемое значение равно -1 , если ошибка возникает на этапе проверки. Значения 0 или -1 не должны использоваться в качестве идентификаторов пунктов меню. |
|||||||||||
TPM_RIGHT ALIGN |
Установить правую сторону меню вровень с координатой, указанной параметром х. |
|||||||||||
TPM_RIGHTBUTTON |
Отслеживать действия, выполняемые правой кнопкой мыши. |
|||||||||||
TPMJTOP ALIGN |
Установить верхнюю часть меню вровень с координатой, указанной параметром у. Это — предусмотренное по умолчанию выравнивание по вертикали. |
|||||||||||
TPM_VCENTERALIGN |
Выровнять меню по вертикали вокруг координаты центра, указанной параметром у. |
|||||||||||
X |
int. Горизонтальное расположение всплывающего меню, заданное в экранных координатах. |
|||||||||||
У |
int. Вертикальное расположение всплывающего меню, заданное в экранных координатах. |
|||||||||||
nReserved |
int. Зарезервированное значение; должно быть равно 0. |
|||||||||||
hwnd |
HWND. Дескриптор окна, которому принадлежит всплывающее меню. Это окно принимает все сообщения от меню. Сообщение WM_COMMAND не отправляется до тех пор, пока функция не выполнит возврат. Если установлен флажок TPM_NONOTIFY, функция не посылает сообщения окну; однако все равно нужно установить допустимый дескриптор окна. |
|||||||||||
Iprc |
LPCRECT. Этот параметр игнорируется. |
|||||||||||
Возвращаемое значение |
BOOL. Если указан флажок TPM_RETURNCMD, возвращаемое значение — пункт меню, который выбрал пользователь. Если пользователь отменил выбор пункта меню или произошла ошибка, возвращаемое значение — нуль. Если флажок TPM_RETURNCMD не указан и функция была выполнена успешно, возвращаемое значение отлично от нуля; в ином случае возвращаемое значение — нуль. |
|||||||||||
Включаемый файл |
winuser.h |
|||||||||||
См. также |
InsertMenuItem, CreatePopupMenu, GetSubMenu, TrackPopupMenuEx |
|||||||||||
Соответствующие сообщения |
||||||||||||
WM_COMMAND |
||||||||||||
Пример |
В следующем примере показано, как создать незакрепленное всплывающее меню с использованием функций CreatePopupMenu и TrackPopupMenu. При нажатии правой кнопки мыши над клиентской областью приложения со- |
|||||||||||
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.