Операторы #define файлазаголовка
«define IDM_EXIT 101 #define IDM_ABOUT 102
#define IDM_ITEM1 200 «define IDM_ITEM2 201 «define IDM_ITEM3 202
Файлресурса(.RC)
См. \local-sources\chap06\06-04.txt
ФункцияWndProc
cm. \local-sources\chap06\06-05.txt
CopyAcceleratorTable • Windows 98 • Windows 2000 |
||||||||||||||||||||||||||||||||||||||||
Описание |
Функция CopyAcceleratorTable копирует указанную таблицу оперативных клавиш в новое место. Эту функцию можно применять для получения данных таблицы оперативных клавиш, которая соответствует дескриптору таблицы оперативных клавиш, или для определения размера данных таблицы оперативных клавиш. |
|||||||||||||||||||||||||||||||||||||||
Данные таблицы оперативных клавиш можно получить, скопировав эти данные. Можно также выбрать число элементов в таблице оперативных клавиш для использования при определении объема памяти, которая должна быть распределена при последующем вызове для получения фактических данных. |
||||||||||||||||||||||||||||||||||||||||
Синтаксис |
hit CopyAcceleratorTable( HACCEL hacclOriginal, LPACCEL IpacclCopy, int cAccel ) |
|||||||||||||||||||||||||||||||||||||||
Параметры |
||||||||||||||||||||||||||||||||||||||||
HacclOriginal |
HACCEL. Дескриптор таблицы оперативных клавиш, которая должна быть скопирована. |
|||||||||||||||||||||||||||||||||||||||
IpacclCopy |
LPACCEL. Указатель на массив структур ACCEL, куда должно быть скопировано содержимое таблицы оперативных клавиш. |
|||||||||||||||||||||||||||||||||||||||
cAccel |
int. Максимальное число входов таблицы оперативных клавиш, которое должно быть скопировано. См. приведенное ниже определение структуры ACCEL. |
|||||||||||||||||||||||||||||||||||||||
Возвращаемое значение |
int. Если параметр IpacclCopy равен NULL, возвращаемым значением является число входов таблицы оперативных клавиш. В ином случае возвращаемым значением является число входов, которые были скопированы. |
|||||||||||||||||||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||||||||||||||||||
См. также |
CreateAcceleratorTable, DestroyAcceleratorTable, LoadAccelerators, TranslateAccelerator |
|||||||||||||||||||||||||||||||||||||||
Определение ACCEL |
||||||||||||||||||||||||||||||||||||||||
typedef struct tagACCEL { BYTE fVirt; WORD key; WORD and; } ACCEL; |
||||||||||||||||||||||||||||||||||||||||
Члены |
||||||||||||||||||||||||||||||||||||||||
fVirt |
BYTE. Одно или несколько значений, приведенных в табл. 6.4, которые объединены с помощью двоичного оператора OR (|). |
|||||||||||||||||||||||||||||||||||||||
Таблица 6.4. ЗначенияфлажковfVirt структурыACCEL |
||||||||||||||||||||||||||||||||||||||||
Значение "* ~ |
Описание |
|||||||||||||||||||||||||||||||||||||||
FALT |
При нажатии оперативной клавиши необходимо удерживать клавишу Alt. |
|||||||||||||||||||||||||||||||||||||||
FCONTROL |
При нажатии оперативной клавиши необходимо удерживать клавишу Ctrl. |
|||||||||||||||||||||||||||||||||||||||
FNOINVERT |
При использовании оперативной клавиши не будет высвечен ни один пункт меню верхнего уровня. |
|||||||||||||||||||||||||||||||||||||||
FSHIFT |
При нажатии оперативной клавиши необходимо удерживать клавишу Shift. |
|||||||||||||||||||||||||||||||||||||||
FVIRTKEY |
Член fcey указывает код виртуальной клавиши. Значение по умолчанию — код символа ASCII. |
|||||||||||||||||||||||||||||||||||||||
key |
WORD. Код виртуальной клавиши, если установлен флажок FVIRTKEY; в ином случае — код символа ASCII. |
|||||||||||||||||||||||||||||||||||||||
cmd |
WORD. Идентификатор оперативной клавиши, который был отправлен при использовании оперативной клавиши. |
|||||||||||||||||||||||||||||||||||||||
Пример |
См. пример для функции CreateAcceleratorTable. |
|||||||||||||||||||||||||||||||||||||||
CreateAcceleratorTable • Windows 98 • Windows 2nnn |
||||||||||||||||||||||||||||||||||||||||
Описание |
Функция CreateAcceleratorTable позволяет создать таблицу оперативных клавиш. В приложении можно создать таблицу оперативных клавиш во время выполнения без загрузки этой таблицы из файла ресурса (RC). Таблицы оперативных клавиш можно также изменять в соответствии с изменениями в меню, используя и функцию CopyAcceleratorTable, и функцию CreateAcceleratorTable. |
|||||||||||||||||||||||||||||||||||||||
Синтаксис |
HACCEL CreateAcceleratorTable( LPACCEL Ipaccl, int nEntries ) |
|||||||||||||||||||||||||||||||||||||||
Параметры |
||||||||||||||||||||||||||||||||||||||||
Ipaccl |
LPACCEL. Указатель на массив структур ACCEL. Определение структуры ACCEL приведено в описании функции CopyAcceleratorTable. |
|||||||||||||||||||||||||||||||||||||||
nEntries |
int. Число структур ACCEL, указанных параметром Ipaccl. |
|||||||||||||||||||||||||||||||||||||||
Возвращаемое значение |
HACCEL. В случае успешного выполнения функции, возвращаемое значение — дескриптор созданной таблицы оперативных клавиш; в ином случае возвращаемое значение — NULL. |
|||||||||||||||||||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||||||||||||||||||
См. также |
CopyAcceleratorTable, DestroyAcceleratorTable, LoadAccelerators, TranslateAccelerator |
|||||||||||||||||||||||||||||||||||||||
Пример г ~ ' ~ j ------- --- ------------ — |
В следующем примере показано, как динамически изменить в приложении меню и оперативные клавиши. При выборе опции меню Test! в меню добавляется новый пункт (вплоть до четырех), а для нового пункта меню добавляется новая оперативная клавиша (соответственно, Fl, F2, F3 и F4). При выборе новых пунктов меню либо с помощью соответствующей оперативной клавиши, либо из меню появляется окно сообщения. Этот метод можно использовать для добавления произвольных пунктов меню и определения для этих пунктов оперативных клавиш. На рис. 6.3 показан пример выбора пункта New Item 2. |
|||||||||||||||||||||||||||||||||||||||
Глобальная переменная HACCEL hAccel = NULL; Цикл обработки сообщений в функции WinMain while ( GetMessage( Smsg, NULL, 0, 0) ) { if ( ! hAccel | I ! TranslateAccelerator ( hWnd, hAccel, Smsg ) ) { TranslateMessage ( Smsg ) ; |
||||||||||||||||||||||||||||||||||||||||
DispatchMessage ( Smsg ) ; } } Функция Add NewTest Item cm. \local-aources\chap06\06-06.txt Часть функции WndProc |
||||||||||||||||||||||||||||||||||||||||
См. \local-sources\chap06\06-07. txt |
||||||||||||||||||||||||||||||||||||||||
CreateMenu • Windows 98 • Windows 2000 |
||||||||||||||||||||||||||||||||||||||||
Описание |
Функция CreateMenu применяется на первом этапе динамического создания меню в приложении. Первоначально меню является пустым, но может быть заполнено пунктами меню с использованием функций AppendMenu и InsertMenu Функция CreateMenu обычно применяется при создании меню для дочерних окон или в качестве альтернативы способу определения всех меню в файле ресурса (RC) программы. С помощью этой функции нельзя создавать всплывающие меню. Для создания всплывающих меню применяется функция CreatePopupMenu. |
|||||||||||||||||||||||||||||||||||||||
Синтаксис |
HMENU CreateMenu( VOID ) |
|||||||||||||||||||||||||||||||||||||||
Параметры |
Эта функция не имеет параметров. |
|||||||||||||||||||||||||||||||||||||||
Возвращаемое значение |
HMENU. В случае успешного выполнения — дескриптор вновь созданного меню; в ином случае возвращаемое значение — NULL. |
|||||||||||||||||||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||||||||||||||||||
См. также |
AppendMenu, DestroyMenu, InsertMenuItem, SetMenu |
|||||||||||||||||||||||||||||||||||||||
Пример |
В следующем примере в приложении нет меню, описанного в файле ресурса (RC) — оно создается при запуске программы. Создаваемое меню содержит только два пункта. При выборе опции меню Test! отображается окно сообщения. |
|||||||||||||||||||||||||||||||||||||||
См. \local-sources\chap06\06-08.txt |
||||||||||||||||||||||||||||||||||||||||
CreatePopupMenu • Windows 98 • Windows 2000 |
||||||||||||||||||||||||||||||||||||||||
Описание |
Функция CreatePopupMenu создает пустое всплывающее меню. Всплывающими меню считаются все меню, кроме верхней строки меню. Эта функция создает пустое всплывающее меню, предназначенное для добавления пунктов с использованием функций AppendMenu и InsertMenuItem. Функция CreatePopupMenu применяется для создания меню в теле программы. Эта функция может использоваться в сочетании с функцией TrackPopupMenu для создания незакрепленных всплывающих меню (меню, не прикрепленных к другим меню). |
|||||||||||||||||||||||||||||||||||||||
Синтаксис |
HMENU CreatePopupMenu( VOID ) |
|||||||||||||||||||||||||||||||||||||||
Параметры |
Эта функция не имеет параметров. |
|||||||||||||||||||||||||||||||||||||||
Возвращаемое значение |
HMENU. В случае успешного выполнения — дескриптор вновь созданного всплывающего меню; в ином случае возвращаемое значение — NULL. |
|||||||||||||||||||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||||||||||||||||||
См. также |
AppendMenu, CreateMenu, InsertMenuItem, SetMenu, TrackPopupMenu, TrackPopupMenuEx |
|||||||||||||||||||||||||||||||||||||||
Пример |
См. пример для функции TrackPopupMenu. |
|||||||||||||||||||||||||||||||||||||||
DeleteMenu • Windows 98 • Windows 2000 |
||||||||||||||||||||||||||||||||||||||||
Описание |
Функция DeleteMenu удаляет отдельный пункт из указанного меню. Если пунктом меню является всплывающее меню, оно уничтожается и освобождается память. После этого необходимо вызвать функцию DrawMenuBar для повторного вывода строки меню. Функция DeleteMenu применяется для внесения небольших изменений в меню в процессе выполнения программы. Эта функция может применяться в качестве альтернативы построению нескольких меню и переключению между ними. |
|||||||||||||||||||||||||||||||||||||||
Синтаксис |
BOOL DeleteMenu( HMENU hmenu, UINT ultem, UINT uflags ) |
|||||||||||||||||||||||||||||||||||||||
Параметры |
||||||||||||||||||||||||||||||||||||||||
hmenu |
HMENU. Дескриптор меню, которое должно быть изменено. Для выборки этого дескриптора может применяться функция GetMenu. |
|||||||||||||||||||||||||||||||||||||||
ultem |
UINT. Пункт меню, который должен быть удален. Это значение зависит от параметра uFlags. |
|||||||||||||||||||||||||||||||||||||||
и Flags |
UINT. Указывает способ интерпретации параметра ultem, как показано в табл. 6.5. |
|||||||||||||||||||||||||||||||||||||||
Таблица 6.5. ЗначенияпараметровuFlags функцииDeleteMenu |
||||||||||||||||||||||||||||||||||||||||
Значение |
Описание |
|||||||||||||||||||||||||||||||||||||||
MF_BYCOMMAND |
Параметр ultem представляет собой идентификационное значение пункта меню. Это — значение по умолчанию. |
|||||||||||||||||||||||||||||||||||||||
MF_BYPOSITION |
Параметр uffem представляет собой смещение пункта меню с отсчетом от нуля. При работе с подменю (меню, всплывающими в результате выбора пункта строки меню) для выборки дескриптора меню, используемого в параметре /intend, применяется функция GetSubMenu. |
|||||||||||||||||||||||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE. |
|||||||||||||||||||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||||||||||||||||||
См. также |
DrawMenuBar, RemoveMenu |
|||||||||||||||||||||||||||||||||||||||
Пример |
В следующем примере к строке меню приложения добавляются три пункта. При выборе одного из новых пунктов он удаляется из меню с исполь зованием функции DeleteMenu. |
|||||||||||||||||||||||||||||||||||||||
См. \local-sources\chap06\06-09.txt |
||||||||||||||||||||||||||||||||||||||||
DestroyAcceleratorTable • Windows 98 + Windows 2000 |
||||||||||||||||||||||||||||||||||||||||
Описание |
Функция DestroyAcceleratorTable уничтожает таблицу оперативных клавиш. Перед закрытием приложения необходимо вызывать эту функцию в приложении для уничтожения всех таблиц оперативных клавиш, созданных с помощью функции CreateAcceleratorTable. Таблицы оперативных клавиш, которые были загружены с помощью функции LoadAccelerators, не должны уничтожаться. |
|||||||||||||||||||||||||||||||||||||||
Синтаксис |
BOOL DestroyAcceleratorTable( HACCEL haccl ) |
|||||||||||||||||||||||||||||||||||||||
Параметры |
||||||||||||||||||||||||||||||||||||||||
//ЯСС/ |
HACCEL. Дескриптор таблицы оперативных клавиш, который был возвращен после вызова функции CreateAcceleratorTable. |
|||||||||||||||||||||||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE. |
|||||||||||||||||||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||||||||||||||||||
См. также |
CopyAcceleratorTable, CreateAcceleratorTable, LoadAccelerators, TranslateAccelerator |
|||||||||||||||||||||||||||||||||||||||
Соответствующие сообщения |
||||||||||||||||||||||||||||||||||||||||
WM_DESTROY |
||||||||||||||||||||||||||||||||||||||||
Пример |
См. пример для функции CreateAcceleratorTable. |
|||||||||||||||||||||||||||||||||||||||
DestroyMenu • Windows 98 «• Windows 2000 |
||||||||||||||||||||||||||||||||||||||||
Описание |
Функция DestroyMenu уничтожает меню, созданные с применением файла ресурса (RC), и меню, созданные в теле программы с помощью функции CreateMenu или CreatePopupMenu. Функция DestroyMenu применяется в приложениях с несколькими меню. При завершении работы приложения будет уничтожено только одно меню, подключенное к окну приложения. Все другие меню останутся в памяти. Функция DestroyMenu должна вызываться перед закрытием приложения для освобождения памяти, занятой меню, не подключенными к окну приложения. |
|||||||||||||||||||||||||||||||||||||||
Синтаксис |
BOOL DestroyMenu( HMENU hmenu ) |
|||||||||||||||||||||||||||||||||||||||
Параметры |
||||||||||||||||||||||||||||||||||||||||
hmenu |
HMENU. Дескриптор меню, которое должно быть уничтожено. |
|||||||||||||||||||||||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE. |
|||||||||||||||||||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||||||||||||||||||
См. также |
CreateMenu, CreatePopupMenu, DeleteMenu, RemoveMenu, GetMenu |
|||||||||||||||||||||||||||||||||||||||
Соответствующие сообщения |
||||||||||||||||||||||||||||||||||||||||
\VM_DESTROY |
||||||||||||||||||||||||||||||||||||||||
Пример |
См. пример для функции TrackPopupMenu. |
|||||||||||||||||||||||||||||||||||||||
DrawMenuBar • Windows 98 • Windows 2000 |
||||||||||||||||||||||||||||||||||||||||
Описание |
Функция DrawMenuBar повторно выводит строку меню. Строка меню не является частью клиентской области окна и поэтому не обновляется при вызове функции UpdateWindow. Функцию DrawMenuBar необходимо вызывать сразу после внесения любых изменений в меню верхнего уровня. |
|||||||||||||||||||||||||||||||||||||||
Синтаксис |
BOOL DrawMenuBar( HWND hWnd ) |
|||||||||||||||||||||||||||||||||||||||
Параметры |
||||||||||||||||||||||||||||||||||||||||
hWnd |
HWND. Дескриптор окна, которое имеет меню. |
|||||||||||||||||||||||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE. |
|||||||||||||||||||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||||||||||||||||||
См. также |
AppendMenu, DeleteMenu, Insert Menul tern, RemoveMenu |
|||||||||||||||||||||||||||||||||||||||
Соответствующ |
ие сообщения |
|||||||||||||||||||||||||||||||||||||||
WM_NCPAINT |
||||||||||||||||||||||||||||||||||||||||
Пример |
В следующем примере происходит добавление нового пункта меню и обновление меню. |
|||||||||||||||||||||||||||||||||||||||
См. \local-sources\chap06\06-10.txt |
||||||||||||||||||||||||||||||||||||||||
EnableMenultem • Windows 98 • Windows 2000 |
||||||||||||||||||||||||||||||||||||||||
Описание |
Функция EnableMenultem позволяет разрешить, запретить или выделить серым цветом пункт меню. Пункты меню обычно разрешены. Это значит, что выбор пункта меню вызывает отправку сообщения WM_COMMAND функции WndProc окна. Пункты меню можно запретить, чтобы пользователь не мог их выбрать, но они будут при этом выглядеть, как обычно. Запрещая пункты меню, можно также показать визуально их отличие от других пунктов меню (вывести текст серым цветом, применяя цвета Windows, предусмотренные по умолчанию), чтобы пользователь мог легко определить, какие команды разрешены. Некоторые действия в меню могут оказаться невозможными при всех ситуациях в программе. Например, нет возможности вставить данные, если никакие данные не были вырезаны или скопированы в буфер обмена. В таких ситуациях лучше отменить и выделить серым цветом пункты меню, не имеющие применения, чтобы пользователь мог легко определить, что некоторые действия невозможны. |
|||||||||||||||||||||||||||||||||||||||
Синтаксис |
BOOL EnableMenuItem( HMENU hMenu, UINT ultem, UINT uFlags ) |
|||||||||||||||||||||||||||||||||||||||
Параметры |
||||||||||||||||||||||||||||||||||||||||
hMenu |
HMENU. Дескриптор меню. Для выборки меню окна применяется функция GetMenu. |
|||||||||||||||||||||||||||||||||||||||
ultem |
UINT. Пункт меню, который должен быть разрешен, запрещен или выделен серым цветом. Это может быть пункт строки меню или всплывающего меню. |
|||||||||||||||||||||||||||||||||||||||
uFlags |
UINT. Действие, которое должно быть выполнено, и способ интерпретации параметра ultem. Значения, приведенные в табл. 6.6, могут быть объединены с помощью двоичного оператора OR (|). |
|||||||||||||||||||||||||||||||||||||||
Таблица 6.6. ЗначенияпараметровuFlags функцииEnableMenultem |
||||||||||||||||||||||||||||||||||||||||
Значение |
Описание |
|||||||||||||||||||||||||||||||||||||||
MF_BYCOMMAND |
Значение, приведенное в параметре ultem, представляет собой идентификатор пункта меню. |
|||||||||||||||||||||||||||||||||||||||
MF_BYPOSITION |
Значение, приведенное в параметре ultem, представляет собой относительную позицию пункта меню с отсчетом от нуля. |
|||||||||||||||||||||||||||||||||||||||
MFS_ENABLED |
Разрешить пункт меню и восстановить цвет текста, приведя его к нормальному цвету пункта меню. |
|||||||||||||||||||||||||||||||||||||||
MFS_GRAYED |
Запретить пункт меню и выделить текст серым цветом. |
|||||||||||||||||||||||||||||||||||||||
Возвращаемое значение |
BOOL. Предыдущее состояние пункта меню (MF_DISABLED, MF_ENABLED или MF_GRAYED). Если пункт меню не существует, возвращаемое значение — OxFFFFFFFF (-1). |
|||||||||||||||||||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||||||||||||||||||
См. также |
GetMenuItemlnfo, CreateMenu, GetMenuItemlD, SetMenuItemlnfo |
|||||||||||||||||||||||||||||||||||||||
Соответствующие сообщения |
||||||||||||||||||||||||||||||||||||||||
WM_COMMAND |
||||||||||||||||||||||||||||||||||||||||
Пример |
В следующем примере пункт меню, обозначенный как IDM_ITEM1, переключается между разрешенным и запрещенным состоянием при выборе опции меню Test!. |
|||||||||||||||||||||||||||||||||||||||
См. \local-sources\chap06\06-ll.txt |
||||||||||||||||||||||||||||||||||||||||
EndMenu |
• Windows 98 • Windows 2000 |
|||||||||||||||||||||||||||||||||||||||
Описание |
Функция EndMenu завершает работу активного меню вызывающей нити. Это аналогично отправке владельцу меню сообщения WM^CANCELMODE. |
|||||||||||||||||||||||||||||||||||||||
Синтаксис |
BOOL EndMenu( VOID ) |
|||||||||||||||||||||||||||||||||||||||
Параметры |
Эта функция не имеет параметров. |
|||||||||||||||||||||||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешною выполнения возвращаемое значение отлично от нуля; в ином случае возвращаемое значение — нуль. |
|||||||||||||||||||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||||||||||||||||||
Соответствующее сообщение |
||||||||||||||||||||||||||||||||||||||||
WM_CANCELMODE |
||||||||||||||||||||||||||||||||||||||||
GetMenu |
Windows 98 • Windows 2000 |
|||||||||||||||||||||||||||||||||||||||
Описание |
Функция GetMenu выбирает дескриптор меню для окна. Функция Get-Menu применяется перед изменением или уничтожением меню. Эта функция не возвращает действительный дескриптор для дочерних окон, имеющих меню. |
|||||||||||||||||||||||||||||||||||||||
Синтаксис |
HMENU GetMenu( HWND h Wnd ) |
|||||||||||||||||||||||||||||||||||||||
Параметры |
||||||||||||||||||||||||||||||||||||||||
hWnd |
HWND. Дескриптор окна, для которого должно быть выбрано меню. |
|||||||||||||||||||||||||||||||||||||||
Возвращаемое значение |
HMENU. В случае успешного выполнения — дескриптор меню указанного окна. Если окно не имеет меню, возвращаемое значение — NULL. Если окно представляет собой дочернее окно, возвращаемое значение не определено. |
|||||||||||||||||||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||||||||||||||||||
См. также |
GetSubMenu, SetMenu, AppendMenu, Insert Menult em, GetMenuInfo, SetMenuInfo, EnableMenuItem |
|||||||||||||||||||||||||||||||||||||||
Пример |
См. пример для функции EnableMenuItem. |
|||||||||||||||||||||||||||||||||||||||
GetMenuBarlnfo • Windows 98 • Windows 2000 |
||||||||||||||||||||||||||||||||||||||||
Описание |
GetMenuBarlnfo выбирает информацию об указанной строке меню. |
|||||||||||||||||||||||||||||||||||||||
Синтаксис |
BOOL GetMenuBarInfo( HWND hWnd, LONG lObject, LONG lltem, PMENUBARINFO pmbi ) |
|||||||||||||||||||||||||||||||||||||||
Параметры |
||||||||||||||||||||||||||||||||||||||||
hWnd |
HWND. Дескриптор окна, которому принадлежит меню; для этого меню будет выбрана информация. |
|||||||||||||||||||||||||||||||||||||||
lObject |
LONG. Указывает объект меню, для которого должна быть выбрана информация. Этот параметр может иметь одно из значений, перечисленных в табл. 6.7. |
|||||||||||||||||||||||||||||||||||||||
Таблица 6.7. Значения параметров (Object функции GetMenuBarlnfo |
||||||||||||||||||||||||||||||||||||||||
Значение |
Описание |
|||||||||||||||||||||||||||||||||||||||
OBJID_CLIENT |
Всплывающее меню, связанное с указанным окном. |
|||||||||||||||||||||||||||||||||||||||
OBJID_MENU |
Строка меню, связанная с указанным окном. Это — то же меню, которое возвращено в результате вызова функции GetMenu. |
|||||||||||||||||||||||||||||||||||||||
OBJID SYSMENU |
Системное меню, связанное с указанным окном. Это — то же меню, которое возвращено в результате вызова функции GetSystemMenu. |
|||||||||||||||||||||||||||||||||||||||
lltem |
LONG. Пункт меню, для которого должна быть выбрана информация. Если этот параметр равен нулю, функция выбирает информацию о самом меню. Если этот параметр равен 1 , функция выбирает информацию о первом пункте меню. Продолжая увеличивать значение этого параметра, можно выбрать информацию о всех пунктах меню. |
|||||||||||||||||||||||||||||||||||||||
pmbi |
PMENUBARINFO. Указатель на структуру MENUBARINFO, которая получает информацию. |
|||||||||||||||||||||||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения возвращаемое значение отлично от нуля; в ином случае возвращаемое значение — нуль. |
|||||||||||||||||||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||||||||||||||||||
См. также |
GetMenu, GetSystemMenu |
|||||||||||||||||||||||||||||||||||||||
Определение MENUBARINFO typedef struct tagMENUBARINFO ( DWORD cbSize; RECT rcBar; |
||||||||||||||||||||||||||||||||||||||||
HMENU hMenu; HWND hwndMenu ; BOOL fBarFocused : 1 ; BOOL fFocused : 1 ; } MENUBARINFO, * PMENUBARINFO; |
||||||||||||||||||||||||||||||||||||||||
Члены |
||||||||||||||||||||||||||||||||||||||||
cbSize |
DWORD. Размер структуры в байтах. |
|||||||||||||||||||||||||||||||||||||||
rcBar |
RECT. Указывает координаты строки меню, всплывающего меню или пункта меню. |
|||||||||||||||||||||||||||||||||||||||
hMenu |
HMENU. Дескриптор строки меню или всплывающего меню. |
|||||||||||||||||||||||||||||||||||||||
hwndMenu |
HWND. Дескриптор подменю. |
|||||||||||||||||||||||||||||||||||||||
fBarFocused |
BOOL. Если строка меню или всплывающее меню имеет фокус, этот член устанавливается в TRUE; в ином случае он устанавливается в FALSE. |
|||||||||||||||||||||||||||||||||||||||
fFocused |
BOOL. Если пункт меню имеет фокус, этот член устанавливается в TRUE; в ином случае он устанавливается в FALSE. |
|||||||||||||||||||||||||||||||||||||||
GetMenuDefaultltem • Windows 98 • Windows 2000 |
||||||||||||||||||||||||||||||||||||||||
Описание |
Функция GetMenuDefaultltem выбирает идентификатор пункта меню, предусмотренного по умолчанию для указанной строки меню или всплывающего меню. В Windows 2000 и Windows 98 каждая строка меню и каждое всплывающее меню может иметь пункт меню, предусмотренный по умолчанию. Пункт меню, предусмотренный по умолчанию, внешне выглядит иначе по сравнению с обычными пунктами меню и может быть выбран двойным щелчком мыши на пункте родительского меню. |
|||||||||||||||||||||||||||||||||||||||
Синтаксис |
UINT GetMenuDefaultItem( HMENU hMenu, UINT uByPos, UINT gmdi Flags ) |
|||||||||||||||||||||||||||||||||||||||
Параметры |
||||||||||||||||||||||||||||||||||||||||
hMenu |
HMENU. Дескриптор меню. |
|||||||||||||||||||||||||||||||||||||||
uByPos |
UINT. Если устанавливается в FALSE, будет возвращен идентификатор пункта меню. Если устанавливается в TRUE, будет возвращена позиция пункта меню. |
|||||||||||||||||||||||||||||||||||||||
gmdi Flags |
UINT. Указывает способ поиска функцией пункта меню, заданного по умолчанию. В качестве этого парамегра можно установить нуль или более значений, перечисленных в табл. 6.8. |
|||||||||||||||||||||||||||||||||||||||
Таблица 6.8. ЗначенияпараметровgmdiFlags функцииGetMenuDefaultltem |
||||||||||||||||||||||||||||||||||||||||
Значение |
Описание |
|||||||||||||||||||||||||||||||||||||||
GMDI_GOINTOPOPUPS |
Если по умолчанию предусмотрен пункт всплывающего меню, назначение этого параметра состоит в рекурсивном поиске в соответствующем всплывающем меню. Если всплывающее меню не имеет пункта, предусмотренного по умолчанию, то возвращаемое значение указывает пункт всплывающего меню. В соответствии с установленным соглашением, возвращается первый предусмотренный по умолчанию пункт указанного меню, независимо от того, является ли он пунктом всплывающего меню. |
|||||||||||||||||||||||||||||||||||||||
GMDI_USEDISABLED |
По умолчанию функция пропускает запрещенные или недоступные пункты меню. Если установлен этот флажок, они не будут пропущены. |
|||||||||||||||||||||||||||||||||||||||
Возвращаемое значение |
UINT. В случае успешного выполнения — идентификатор меню или позиция пункта меню; в ином случае возвращаемое значение равно -1. |
|||||||||||||||||||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||||||||||||||||||
См. также |
SetMenuDefaultltem, GetMenuItemlnfo, SetMenuItemlnfo |
|||||||||||||||||||||||||||||||||||||||
Пример |
См. пример для функции SetMenuDefaultltem. |
|||||||||||||||||||||||||||||||||||||||
GetMenulnfo • Windows 98 • Windows 2000 |
||||||||||||||||||||||||||||||||||||||||
Описание |
GetMenulnfo выбирает информацию об указанном меню. |
|||||||||||||||||||||||||||||||||||||||
Синтаксис |
BOOL GetMenuInfo( HMENU hMenu, LPMENUINFO Ipmi ) |
|||||||||||||||||||||||||||||||||||||||
Параметры |
||||||||||||||||||||||||||||||||||||||||
Л Мели |
HMENU. Дескриптор меню. |
|||||||||||||||||||||||||||||||||||||||
Ipmi |
LPMENUINFO. Указатель на структуру MENUINFO, которая принимает информацию об указанном меню. |
|||||||||||||||||||||||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения возвращаемое значение отлично от нуля; в ином случае возвращаемое значение — нуль. |
|||||||||||||||||||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||||||||||||||||||
См. также |
SetMenuInfo |
|||||||||||||||||||||||||||||||||||||||
Определение MENUINFO |
||||||||||||||||||||||||||||||||||||||||
typedef struct tagMENUINFO { DWORD cbSize; DWORD fMask; DWORD dwStyle; DINT cyMax; HBROSH hbrBack; DWORD dwContextHelpID; ULONG_PTR duMenuData } MENOINFO, *LPMENUIKFO; |
||||||||||||||||||||||||||||||||||||||||
Члены |
||||||||||||||||||||||||||||||||||||||||
cbSize |
DWORD. Размер структуры в байтах. |
|||||||||||||||||||||||||||||||||||||||
/Mask |
DW0RD. Указывает, какие члены должны быть выбраны или установлены. Этот член может быть установлен в одно или несколько значений, перечисленных в табл. 6.9. |
|||||||||||||||||||||||||||||||||||||||
Таблица 6.9. ЗначенияпараметраfMask структурыMENUINFO |
||||||||||||||||||||||||||||||||||||||||
Значение |
Описание |
|||||||||||||||||||||||||||||||||||||||
MIM APPLYTOSUBMENUS |
Установки будут применяться к меню и ко всем его подменю. Функция GetMenulnfo игнорирует этот флажок; однако функция SetMenuInfo его использует. |
|||||||||||||||||||||||||||||||||||||||
MIM_BACKGROUND |
Выбирает или устанавливает член hbrBack. |
|||||||||||||||||||||||||||||||||||||||
MIM_HELPID |
Выбирает или устанавливает член dwContextHelpID . |
|||||||||||||||||||||||||||||||||||||||
MIM_MAXHEIGHT |
Выбирает или устанавливает член суMax. |
|||||||||||||||||||||||||||||||||||||||
MIM MENUDATA |
Выбирает или устанавливает член dwMenuDafa. |
|||||||||||||||||||||||||||||||||||||||
MIM_STYLE |
Выбирает или устанавливает член dwStyle. |
|||||||||||||||||||||||||||||||||||||||
dwStyle |
DWORD. Стиль меню. Этот параметр может иметь одно или несколько значений, перечисленных в табл. 6.10. |
|||||||||||||||||||||||||||||||||||||||
Таблица 6.10, ЗначенияпараметровdwStyle структурыMENUINFO |
||||||||||||||||||||||||||||||||||||||||
Значение |
Описание |
|||||||||||||||||||||||||||||||||||||||
MNS_AUTODISMISS |
Меню автоматически заканчивает работу, если мышь находится за пределами меню в течение приблизительно 10 секунд. |
|||||||||||||||||||||||||||||||||||||||
MNS_CHECKORBMP |
И для отметки, и для растрового изображения резервируется одно и то же пространство. Если отображается отметка, растровое изображение не отображается. Все отметки и растровые изображения выравниваются. Применяется в меню, где в одних пунктах используются отметки, а в других — растровые изображения. |
|||||||||||||||||||||||||||||||||||||||
MNS_DRAGDROP |
Пункты меню являются адресатами опускания или источниками перетаскивания OLE-автоматизации. Владелец меню получает сообщения WM_MENUDRAG и WM_MENUGETOBJECT. |
|||||||||||||||||||||||||||||||||||||||
MNS_MODELESS |
Меню является немодальным, и, пока меню активно, не существует цикл модальных сообщений меню. |
|||||||||||||||||||||||||||||||||||||||
MNS_NOCHECK |
Слева от пункта не резервируется пространство для отметки. Пункт может быть выбран, но рядом с ним не появляется отметка. |
|||||||||||||||||||||||||||||||||||||||
MNS_NOTIFYBYPOS |
Владелец меню получает сообщение WM_MENUCOMMAND вместо сообщения WM_COMMAND, когда пользователь делает выбор. |
|||||||||||||||||||||||||||||||||||||||
суМох |
UINT. Максимальная высота меню в пикселях. Когда пункты меню превышают по размерам доступное пространство, автоматически используются линейки прокрутки. Значение по умолчанию равно нулю, и в этом случае используется высота экрана. |
|||||||||||||||||||||||||||||||||||||||
hbrBack |
HBRUSH. Кисть, применяемая для отображения цвета фона меню. |
|||||||||||||||||||||||||||||||||||||||
dwContextHelpID |
DWORD. Контекстный идентификатор справки. Это — то же значение, которое используется в функциях GetMenuContextHelpId и SetMenu-ContextHelpId |
|||||||||||||||||||||||||||||||||||||||
dwMenuData |
ULONG_PTR. Значение, определяемое приложением. |
|||||||||||||||||||||||||||||||||||||||
GetMenultemCount • Windows 98 • Windows 2000 |
||||||||||||||||||||||||||||||||||||||||
Описание |
Функция GetMenultemCount позволяет определить число пунктов в указанном меню. Это число включает заголовки верхнего уровня всех всплывающих меню, но не включает сами пункты всплывающего меню. Функция GetMennltemCount применяется для определения числа существующих пунктов меню перед выборкой данных о пунктах меню, таких как идентификационные номера, строки и т.д. |
|||||||||||||||||||||||||||||||||||||||
Синтаксис |
hit GetMenuItemCount( HMENU hMenu ) |
|||||||||||||||||||||||||||||||||||||||
Параметры |
||||||||||||||||||||||||||||||||||||||||
hMenu |
HMENU. Дескриптор меню. |
|||||||||||||||||||||||||||||||||||||||
Возвращаемое значение |
int. В случае успешного выполнения — число пунктов меню; в ином случае возвращаемое значение равно -1. |
|||||||||||||||||||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||||||||||||||||||
См. также |
GetMenu, GetSubMenu |
|||||||||||||||||||||||||||||||||||||||
Пример |
В следующем примере функция GetMenuItemCount применяется для выборки числа пунктов в главном меню. |
|||||||||||||||||||||||||||||||||||||||
СМ. \Jocal-sources\chap06\06-12.txt |
||||||||||||||||||||||||||||||||||||||||
GetMenultemID • Windows 98 * Windows 2000 |
||||||||||||||||||||||||||||||||||||||||
Описание |
При определении меню в файле ресурса (RC) либо при добавлении пунктов меню в ходе выполнения программы с помощью функций AppendMenu и InsertMenuItem с каждым пунктом меню связываются идентификационные значения меню. Функция GetMenultemID позволяет выбрать идентификатор пункта меню. Идентификационные значения остаются постоянными, даже если происходит добавление и удаление других пунктов меню. Выборка идентификаторов пунктов меню может применяться в программах, которые позволяют пользователю добавлять и удалять произвольные пункты меню, такие как имена макрокоманд. |
|||||||||||||||||||||||||||||||||||||||
Синтаксис |
UINT GetMenuItemID( HMENU hMenu, int nPos ) |
|||||||||||||||||||||||||||||||||||||||
Параметры |
||||||||||||||||||||||||||||||||||||||||
hMenu |
HMENU. Дескриптор строки меню или всплывающего меню, содержащего пункт, идентификатор которого должен быть выбран. |
|||||||||||||||||||||||||||||||||||||||
nPos |
int. Относительная позиция пункта меню с отсчетом от нуля. |
|||||||||||||||||||||||||||||||||||||||
Возвращаемое значение |
UINT. Идентификатор пункта меню (ID), соответствующий пункту меню в позиции nPos. Если идентификатор пункта меню равен NULL или если указанный пункт вызывает всплывающее меню, возвращаемое значение — OxFFFFFFFF. |
|||||||||||||||||||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||||||||||||||||||
См. также |
GetMenuItemCount, GetMenuString, GetMenultemlnfo, GetMenu, GetSubMenu |
|||||||||||||||||||||||||||||||||||||||
Пример |
В следующем примере функция GetMenultemID применяется для получения идентификатора второго пункта главного меню. |
|||||||||||||||||||||||||||||||||||||||
С м. \local-sources\chap06\06-13.txt |
||||||||||||||||||||||||||||||||||||||||
GetMenultemlnfo • Windows 98 «• Windows 2000 |
||||||||||||||||||||||||||||||||||||||||
Описание |
Функция GetMenultemlnfo выбирает информацию о пункте меню. С помощью этой функции можно выбрать сразу всю информацию о пункте меню вместо выборки по одному атрибуту с помощью других функций работы с меню. |
|||||||||||||||||||||||||||||||||||||||
Синтаксис |
BOOL GetMenuItemInfo( HMENU hMenu, UINT ultem, BOOL bByPosition, LPMENUITEMINFO Ipmii ) |
|||||||||||||||||||||||||||||||||||||||
Параметры |
||||||||||||||||||||||||||||||||||||||||
hMenu |
HMENU. Дескриптор меню, которое содержит указанный пункт. |
|||||||||||||||||||||||||||||||||||||||
ultem |
UINT. Идентификатор или позиция пункта меню, о котором должна быть получена информация. |
|||||||||||||||||||||||||||||||||||||||
bByPosition |
BOOL. Устанавливается в FALSE, если значение параметра ultem представляет собой идентификатор пункта меню. В ином случае ultem — позиция пункта меню. |
|||||||||||||||||||||||||||||||||||||||
Ipmii |
LPMENUITEMINFO. Указатель на структуру MENUITEMINFO, которая принимает информацию об указанном пункте меню. См. приведенное ниже определение структуры MENUITEMINFO. |
|||||||||||||||||||||||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE. |
|||||||||||||||||||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||||||||||||||||||
См. также |
SetMenuItemlnfo |
|||||||||||||||||||||||||||||||||||||||
Определение MENUITEMINFO |
||||||||||||||||||||||||||||||||||||||||
typedef struct tagMENUITEMINFO { UINT cbSize; HINT fMask; DINT fType,-UINT f State; UINT WID ; HMENU hSubMenu; HBITMAP hbmpChecked; HBITMAP hbmpUnchecked; ULONG_PTR dwItemData; LPTSTR dwTypeData ; UINT cch; HBITMAP hbmpltem; } MENUITEMINFO, «LPMENUITEMINFO; |
||||||||||||||||||||||||||||||||||||||||
Члены |
||||||||||||||||||||||||||||||||||||||||
cbSize |
UINT. Размер структуры в байтах. Перед использованием в функции этот параметр должен быть инициализирован. |
|||||||||||||||||||||||||||||||||||||||
fMask |
UINT. Одно или несколько значений, перечисленных в табл. 6.1 1, которые определяют, какие члены этой структуры должны быть установлены или выбраны. |
|||||||||||||||||||||||||||||||||||||||
Таблица 6.11. ЗначенияпараметраfMask структурыMENUITEMINFO |
||||||||||||||||||||||||||||||||||||||||
Значение |
Описание |
|||||||||||||||||||||||||||||||||||||||
М11М_В1ТМАР |
Выбирает или устанавливает член hbmpltem |
|||||||||||||||||||||||||||||||||||||||
MIIM_CHECKMARKS |
Выбирает или устанавливает члены hbmpChecked и hbmpUnchecked |
|||||||||||||||||||||||||||||||||||||||
MIIM_DATA |
Выбирает или устанавливает член dwItemData |
|||||||||||||||||||||||||||||||||||||||
MIIM_FTYPE |
Выбирает или устанавливает член fType |
|||||||||||||||||||||||||||||||||||||||
MIIMJD |
Выбирает или устанавливает член w/D |
|||||||||||||||||||||||||||||||||||||||
MIIM_STATE , |
Выбирает или устанавливает член {State |
|||||||||||||||||||||||||||||||||||||||
МММ STRING |
Выбирает или устанавливает член dwTypeDafa |
|||||||||||||||||||||||||||||||||||||||
MIIM_SUBMENU |
Выбирает или устанавливает член hSubAHenu |
|||||||||||||||||||||||||||||||||||||||
MHMJTYPE |
Выбирает или устанавливает члены fType и dwTypeData |
|||||||||||||||||||||||||||||||||||||||
JType |
UINT. Тип пункта меню. Этот параметр может иметь одно или несколько значений MFT_, перечисленных в табл. 6.2. |
|||||||||||||||||||||||||||||||||||||||
/State |
UINT. Состояние пункта меню. Этот параметр может иметь одно или несколько значений MFS_, перечисленных в табл. 6.2. |
|||||||||||||||||||||||||||||||||||||||
wID |
UINT. Идентификатор пункта меню. |
|||||||||||||||||||||||||||||||||||||||
hSubMenu |
HMENU. Дескриптор выпадающего меню или подменю, связанного с указанным пунктом меню. Если данный пункт меню не открывает выпадающее меню или подменю, этот член имеет значение NULL. |
|||||||||||||||||||||||||||||||||||||||
hbmpChecked |
HBITMAP. Дескриптор растрового изображения, которое отображается рядом с пунктом меню, если он отмечен. Если этот член имеет значение NULL, используется растровое изображение, предусмотренное по умолчанию. |
|||||||||||||||||||||||||||||||||||||||
hbmp Unchecked |
HBITMAP. Дескриптор растрового изображения, которое отображается рядом с пунктом меню, если он не отмечен. Если этот член имеет значение NULL, никакое растровое изображение для этого не используется. |
|||||||||||||||||||||||||||||||||||||||
dwItemData |
ULONG_PTR. Определяемое приложением значение, связанное с пунктом меню. |
|||||||||||||||||||||||||||||||||||||||
dwTypeData |
LPTSTR. Содержимое пункта меню. Смысл этого члена зависит от типа пункта меню. |
|||||||||||||||||||||||||||||||||||||||
cch |
UINT. Длина текста при получении информации о пункте меню типа MFTJSTRING. Этот член равен 0 для пунктов меню других типов и игнорируется, если эта структура используется в функции SetMenuItemlnfo. |
|||||||||||||||||||||||||||||||||||||||
hbmpltem |
HBITMAP. Дескриптор отображаемого растрового изображения или одно из значений, перечисленных в табл. 6.12. |
|||||||||||||||||||||||||||||||||||||||
Таблица 6. 12. Значенияпараметраhbmpltem структурыMENUITEMINFO |
||||||||||||||||||||||||||||||||||||||||
Значение |
Отображаемое растровое изображение |
|||||||||||||||||||||||||||||||||||||||
HBMMENU_CALLBACK |
Растровое изображение, выведенное окном, которому принадлежит меню. Приложение должно обрабатывать сообщения WM_MEASUREITEM и WM_DRAWITEM. |
|||||||||||||||||||||||||||||||||||||||
HBMMENU_MBAR_CLOSE |
Кнопка закрытия для строки меню. |
|||||||||||||||||||||||||||||||||||||||
HBMMENU_MBAR_CLOSE_D |
Запрещенная кнопка закрытия для строки меню. |
|||||||||||||||||||||||||||||||||||||||
HBMMENU_MBAR_MINIMIZE |
Кнопка свертывания для строки меню. |
|||||||||||||||||||||||||||||||||||||||
HBMMENU_MBAR_MINIMIZE D |
Запрещенная кнопка свертывания для строки меню. |
|||||||||||||||||||||||||||||||||||||||
HBMMENU_MBAR_RESTORE |
Кнопка восстановления для строки меню. |
|||||||||||||||||||||||||||||||||||||||
HBMMENU_POPUP_CLOSE |
Кнопка закрытия для подменю. |
|||||||||||||||||||||||||||||||||||||||
HBMMENU_POPUP_MAXIMIZE |
Кнопка развертывания для подменю. |
|||||||||||||||||||||||||||||||||||||||
HBMMENU_POPUP_MINIMIZE |
Кнопка свертывания для подменю. |
|||||||||||||||||||||||||||||||||||||||
HBMMENU_POPUP_RESTORE |
Кнопка восстановления для подменю. |
|||||||||||||||||||||||||||||||||||||||
HBMMENU_SYSTEM |
Пиктограмма Windows или пиктограмма окна, указанного параметром dw/femDafa. ' |
|||||||||||||||||||||||||||||||||||||||
Пример |
В следующем примере функция GetMenuItemlnfo применяется для выборки текста пункта меню при выборе пункта меню Test!. Затем текст пункта меню отображается в окне сообщения. |
|||||||||||||||||||||||||||||||||||||||
См. \local-sources\chap06\06-14 . txt |
||||||||||||||||||||||||||||||||||||||||
GetMenultemRect • Windows 98 • Windows 2000 |
||||||||||||||||||||||||||||||||||||||||
Описание |
Функция GetMenultemRect определяет прямоугольную область, которую пункт меню занимает на экране. |
|||||||||||||||||||||||||||||||||||||||
Синтаксис |
BOOL GetMenuItemRect( HWND hWnd, HMENU hMenu, UINT ultem, LPRECT Iprcltem ) |
|||||||||||||||||||||||||||||||||||||||
Параметры |
||||||||||||||||||||||||||||||||||||||||
hWnd |
HWND. Дескриптор окна, содержащего строку меню или всплывающее меню. Если этот параметр имеет значение NULL и параметр hMenu представляет всплывающее меню, данная функция определяет окно меню. |
|||||||||||||||||||||||||||||||||||||||
hMenu |
HMENU. Дескриптор строки меню или всплывающего меню. |
|||||||||||||||||||||||||||||||||||||||
ultem |
UINT. Позиция пункта меню с отсчетом от нуля. |
|||||||||||||||||||||||||||||||||||||||
Iprcltem |
LPRECT. Указатель на структуру RECT, которая принимает ограничительный прямоугольник указанного пункта меню. Если параметр hMenu указывает строку меню, функция возвращает экранные координаты; в ином случае она возвращает клиентские координаты. |
|||||||||||||||||||||||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE. |
|||||||||||||||||||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||||||||||||||||||
См. также |
GetMenu. GetSubMenu |
|||||||||||||||||||||||||||||||||||||||
Пример |
В следующем примере прямоугольник пункта меню Test! отображается в окне сообщения, когда пользователь выбирает пункт меню Test!. |
|||||||||||||||||||||||||||||||||||||||
См. \Iocal-sources\chap06\06-15.txt |
||||||||||||||||||||||||||||||||||||||||
GetMenuStat |
:е • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||||||||||||||||
Описание |
Функция GetMenuState выбирает информацию о состоянии пункта меню или о числе пунктов во всплывающем меню. Функция GetMenuState чаще всего применяется для определения того, отмечен ли пункт меню, выделен серым цветом или отменен. |
|||||||||||||||||||||||||||||||||||||||
Синтаксис |
UINT GetMenuState( HMENU hmenu, UINT ultem, UINT uFlags ) |
|||||||||||||||||||||||||||||||||||||||
Параметры |
||||||||||||||||||||||||||||||||||||||||
hmenu |
HMENU. Дескриптор меню. |
|||||||||||||||||||||||||||||||||||||||
ultem |
UINT. Идентификатор или позиция пункта меню. |
|||||||||||||||||||||||||||||||||||||||
uflags |
UINT. Указывает способ интерпретации параметра ultem, как показано в табл. 6.13. |
|||||||||||||||||||||||||||||||||||||||
Таблица 6.13. ЗначенияпараметровuFlags функцииGetMenuState |
||||||||||||||||||||||||||||||||||||||||
Значение " |
Описание |
|||||||||||||||||||||||||||||||||||||||
MF BYCOMMAND |
Значение utfem представляет собой идентификационное значение меню. |
|||||||||||||||||||||||||||||||||||||||
MF_BYPOSITION |
Значение if/tern представляет собой относительную позицию пункта меню с отсчетом от нуля. |
|||||||||||||||||||||||||||||||||||||||
Возвращаемое значение |
UINT. В случае ошибки возвращает OxFFFFFFFF. Если параметр ultem обозначает всплывающее меню, старший байт содержит число пунктов во всплывающем меню. Младший байт содержит комбинацию флажков, по- |
|||||||||||||||||||||||||||||||||||||||
казанных в табл. 6.2. Значения объединены с помощью двоичного оператора OR (|). |
||||||||||||||||||||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||||||||||||||||||
См. также |
CheckMenuItem, CheckMenuRadioItem, GetMenuItemlnfo |
|||||||||||||||||||||||||||||||||||||||
Пример |
В следующем примере, показанном на рис. 6.4, в качестве отметки для пункта меню ШМ_СНК1ТЕМ применяется растровое изображение под названием "Checkmark". В приложении не известны заранее размеры растрового изображения или размеры отметок в меню (это зависит от разрешающей способности экрана). Размеры растрового изображения корректируются в соответствии со значениями, определяемыми во время запуска приложения. |
|||||||||||||||||||||||||||||||||||||||
См. \local-so |
urces\chap06\06-16. txt |
|||||||||||||||||||||||||||||||||||||||
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.