@Bernd,
This way you can have the exact same effect as the MessageRequester.
As it uses API, it is Windows only.
Code: Select all
Procedure zOclick(Gadget.i)
GetCursorPos_(cp.POINT)
GetWindowRect_(GadgetID(Gadget),r.RECT)
SetCursorPos_((r\left),(r\top))
mouse_event_(#MOUSEEVENTF_LEFTDOWN,0,0,0,0)
mouse_event_(#MOUSEEVENTF_LEFTUP,0,0,0,0)
SetCursorPos_(cp\x,cp\y)
EndProcedure
Win=OpenWindow(#PB_Any, 0, 0, 320, 240, "", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
BtnOk=ButtonGadget(#PB_Any, 10, 180, 88, 26, "OK", #PB_Button_Default)
AddKeyboardShortcut(Win, #PB_Shortcut_Return, 13)
SetActiveGadget(BtnOk)
MessageRequester("Real MessageRequester","This is the real MessageRequester")
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Menu
Select EventMenu()
Case 13
zOclick(BtnOk)
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
Case BtnOk
Debug "Pressed"
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
- Clicking on OK works.
- Pressing
Space works.
- Pressing Return works.
The procedure zOclick simulates a mouse click.
Additionally, the flag #PB_Button_Default on the
button definition gives the appearance of a default
button.
Cheers!