Файл заголовка «define IDM_FIRST 300 «define IDM SECOND 301 «define MAXMENUNAMES 100 VOID AppendMemory ( LPTSTR IpDest, LPTSTR IpSource, int nBytes, BOOL bReset, BOOL bConvert ) ; Функции WndProc и AppendMemory |
|||||||||
cm. \local-sources\chap06\06-21.txt |
|||||||||
MenuitemFromPoint • Windows 98 • Windows 2000 |
|||||||||
Описание |
Функция MenuitemFromPoint определяет, какой пункт меню находится в указанной точке экрана, если он там действительно есть. Функция MenuitemFromPoint может применяться для работы с определяемыми пользователем и незакрепленными всплывающими меню. |
||||||||
Синтаксис |
int MenuItemFromPoint( HWND hWnd, HMENU hMenu, POINT ptScreen ) |
||||||||
Параметры |
|||||||||
hWnd |
HWND. Дескриптор окна, содержащего строку меню или всплывающее меню. Если этот параметр установлен в NULL и параметр hMenu представляет всплывающее меню, функция MenuitemFromPoint ищет окно меню. |
||||||||
hMenu |
HMENU. Дескриптор меню, для которого нужно выполнить проверку попадания. |
||||||||
ptScreen |
POINT. Местонахождение точки, в которой нужно выполнить проверку. Если параметр hMenu указывает строку меню, этот параметр должен быть представлен в экранных координатах; в ином случае он должен быть представлен в клиентских координатах. |
||||||||
Возвращаемое значение |
int. Позиция пункта меню с отсчетом от нуля в указанном месте или -1, если в указанном месте нет пункта меню. |
||||||||
Включаемый файл |
winuser.h |
||||||||
Пример |
В следующем примере показано использование функции MenuitemFromPoint для определения пункта меню, на котором установлен курсор мыши. Для высвечивания текущего пункта применяется функция HiliteMenuItem. При выборе опции меню Test! выполняется перехват позиции мыши и все сообщения мыши перенаправляются через функцию WndProc приложения. Выполняется обработка сообщения WM_MOUSEMOVE для определения того, над каким пунктом меню перемещается мышь. |
||||||||
См. \local-sources\chap06\06-22.txt |
|||||||||
RemoveMenu • Windows 98 • Windows 2000 |
|||||||||
Описание |
Функция RemoveMenu удаляет пункт из указанного меню. Все всплывающие меню удаляются, но не уничтожаются. Всплывающие меню, освобожденные таким образом, могут быть повторно использованы. Необходимо следить за тем, чтобы все меню были либо подключены к главному меню приложения, либо уничтожены с помощью функции DestroyMenu перед завершением работы приложения. Применение функции RemoveMenu в подобных ситуациях намного проще по сравнению с DeleteMenu, поскольку функция RemoveMenu позволяет снова подключить всплывающее меню, а не воссоздавать его с нуля. Перед использованием функции RemoveMenu необходимо вызвать функцию GetSubMenu для получения дескриптора всплывающего меню. |
||||||||
Синтаксис |
BOOL RemoveMenu( HMENU hmenu, UINT ultem, UINT uFlags ) |
||||||||
Параметры |
|||||||||
hmenu |
HMENU. Дескриптор меню, которое должно быть изменено. |
||||||||
ultem |
UINT. Идентификатор или позиция пункта меню, который должен быть удален . |
||||||||
uFlags |
UINT. Указывает способ интерпретации параметра ultem. Этот параметр должен иметь одно из значений, приведенных в табл. 6.16. |
||||||||
Таблица 6.16. ЗначенияпараметровuFlags функцииRemoveMenu |
|||||||||
Значение |
Описание |
||||||||
MF_BYCOMMAND |
Значение ultem представляет собой идентификационное значение меню. |
||||||||
MF_BYPOSITION |
Значение ultem представляет собой относительную позицию пункта меню с отсчетом от нуля. |
||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE. |
||||||||
Включаемый файл |
winuser.h |
||||||||
См. также |
CreatePopupMenu, DeleteMenu, DrawMenuBar, GetSubMenu, InsertMenuItem, SclMenuItemlnfo |
||||||||
Пример |
В следующей процедуре функция RemoveMenu используется для модификации меню. |
||||||||
См. \local-sources\chap06\06-23. txt |
|||||||||
SetMenu • Windows 98 • Windows 2000 |
|||||||||
Описание |
Функция SetMenu подключает меню к окну. Подключаемое меню может быть определено в файле ресурса (RC) или создано в приложении с помощью функции CreateMenu или LoadMenuIndirect. Любое существующее меню будет удалено. Функция SetMenu применяется для переключения на новое меню или для удаления меню из окна. |
||||||||
Синтаксис |
BOOL SetMenu( HWND hWnd, HMENU hMenu ) |
||||||||
Параметры |
|||||||||
hWnd |
HWND. Дескриптор окна, для которого нужно сменить меню. |
||||||||
hMenu |
HMENU. Дескриптор меню, которое должно быть добавлено. Для выборки дескриптора меню, определенного в файле ресурса (RC), применяется функция LoadMenu. Для удаления меню из окна, вместо его смены, этот параметр должен быть установлен в NULL. |
||||||||
Возвращаемое значение |
BOOL. TRUE, если смена меню была выполнена успешно; в ином случае возвращаемое значение — FALSE. |
||||||||
Включаемый файл |
winuser.h |
||||||||
См. также |
CreateMenu, DestroyMenu, DrawMenuBar, GetMenu, LoadMenu, LoadMenu Indirect |
||||||||
Пример |
См. пример для функции LoadMenu. |
||||||||
SetMenuDefaultltem • Windows 98 • Windows 2000 |
|||||||||
Описание |
Функция SetMenuDefaultltem преобразует пункт меню в опцию указанного меню, применяемую по умолчанию. Каждая строка меню и каждое всплывающее меню может иметь опцию, применяемую по умолчанию. Опция, применяемая по умолчанию, выглядит иначе, чем другие опции меню, поэтому пользователь легко может ее определить. Пункт меню, применяемый по умолчанию, можно выбрать, дважды щелкнув мышью на пункте родительского меню. |
||||||||
Синтаксис |
BOOL SetMenuDefaultItem( HMENU hmenu, UINT ultem, UINT uByPos ) |
||||||||
Параметры |
|||||||||
hmenu |
HMENU. Дескриптор меню, содержащего пункт меню. |
||||||||
и Item |
UINT. Идентификатор или позиция пункта меню, который должен быть установлен в качестве применяемого по умолчанию. Для указания того, что ни один пункт меню не применяется по умолчанию, этот параметр должен быть установлен равным -1. |
||||||||
uByPos |
UINT. Указывает смысл параметра ultem. Если этот параметр равен FALSE, ultem — идентификатор пункта меню; в ином случае ultem — позиция пункта меню. |
||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE. |
||||||||
Включаемый файл |
winuser.h |
||||||||
См. также |
GetMenuDefaultltem, GetMenu, GetSubMenu |
||||||||
Пример |
В следующем примере (рис. 6.6) показано, как устанавливать и выбирать пункт меню, применяемый по умолчанию, с помощью функций SetMenuDefaultltem и GetMenuDefaultltem. Выбранный пункт выпадающего меню становится применяемым по умолчанию, если он еще не был таковым; при выборе пункта, применяемого по умолчанию, он теряет этот статус. |
||||||||
См. \local-sources\chap06\06-24.txt |
|||||||||
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.