Описание функции
WM_MENUSELECT
Сообщение выполняется при выборе главного или контекстного меню и его пунктов.
Параметры
Указанные параметры передаются системой.wParam | Двойное слово содержит: младшее слово = идентификатор элемента старшее слово = состояние пункта, может быть комбинацией следующих значений MF_BITMAP - пункт отображает bitmap. MF_CHECKED - пункт отмечен галочкой или кружком. MF_DISABLED - пункт недоступный. MF_GRAYED - пункт серого цвета, недоступный. MF_HILITE - пункт выделен. MF_MOUSESELECT - пункт выбран наведением мыши. MF_OWNERDRAW - пункт нарисованный пользователем. MF_POPUP - пункт разворачивает вложенное меню. MF_SYSMENU - пункт содержится в системном меню, которое вызывается на иконке заголовка или на кнопке на панели задач. |
lParam |
Дескриптор выбранного меню |
Примечания
Смотрите функцию SetWindowCallback.См. также
WM_ENTERMENULOOP, WM_EXITMENULOOPПример
EnableExplicit
#Window = 0
#Menu = 0
Global k = 0
Global hCUI
Procedure WinCallback(hWnd, Msg, wParam, lParam)
Protected info$, ID, Flags
ID = wParam & $FFF ; LoWord
Flags = wParam >> 16 ; HiWord
If Msg = #WM_MENUSELECT
k + 1
SetWindowTitle(#Window, "Call " + k)
If Flags & #MF_CHECKED
info$ + "MF_CHECKED" + #CRLF$
EndIf
If Flags & #MF_DISABLED
info$ + "MF_DISABLED" + #CRLF$
EndIf
If Flags & #MF_GRAYED
info$ + "MF_GRAYED" + #CRLF$
EndIf
If Flags & #MF_HILITE
info$ + "MF_HILITE" + #CRLF$
EndIf
If Flags & #MF_MOUSESELECT
info$ + "MF_MOUSESELECT" + #CRLF$
EndIf
If Flags & #MF_OWNERDRAW
info$ + "MF_OWNERDRAW" + #CRLF$
EndIf
If Flags & #MF_POPUP
info$ + "MF_POPUP" + #CRLF$
EndIf
If Flags & #MF_SYSMENU
info$ + "MF_SYSMENU" + #CRLF$
EndIf
SetGadgetText(1, "handle = " + lParam + #CRLF$ +
"ID = " + ID + #CRLF$ +
"Flags:" + Flags + #CRLF$ +
info$)
EndIf
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
hCUI = OpenWindow(#Window, 5, 5, 590, 270, "WM_MENUSELECT")
If hCUI
TextGadget(0, 10, 5, 300, 94, "The WM_MENUSELECT function is triggered when the main or context menu and its items are selected.")
TextGadget(1, 400, 5, 185, 264, "")
If CreateMenu(#Menu, WindowID(#Window))
MenuTitle("+File")
MenuItem(1, "Open")
MenuItem(2, "Save")
MenuItem(3, "Save as")
MenuBar()
OpenSubMenu("Options")
MenuItem(9, "Window...")
MenuItem(10, "Gadget...")
CloseSubMenu()
MenuItem(4, "Close")
MenuTitle("Help")
MenuItem(5, "Web")
MenuItem(6, "Support")
SetMenuItemState(#Menu , 1 , #True)
DisableMenuItem(#Menu , 2 , #True)
EndIf
SetWindowCallback(@WinCallback())
Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf