Code: Select all
SetWindowLongPtr_(hWnd,#GWL_STYLE,GetWindowLongPtr_(hWnd,#GWL_STYLE)!#WS_TABSTOP)
Code: Select all
SetWindowLongPtr_(hWnd,#GWL_STYLE,GetWindowLongPtr_(hWnd,#GWL_STYLE)!#WS_TABSTOP)
Code: Select all
If OpenWindow(0, 0, 0, 235, 250, "DateGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
DateGadget(0, 10, 10, 210, 25, "Date: %mm/%dd/%yyyy Time: %hh:%ii")
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = 1
Case #WM_KEYDOWN
If GetActiveGadget() = 0 And EventwParam() = 9
If GetAsyncKeyState_(#VK_SHIFT)
keybd_event_(#VK_LEFT,0,0,0)
keybd_event_(#VK_LEFT,0,#KEYEVENTF_KEYUP,0)
Else
keybd_event_(#VK_RIGHT,0,0,0)
keybd_event_(#VK_RIGHT,0,#KEYEVENTF_KEYUP,0)
EndIf
EndIf
EndSelect
Until Quit = 1
EndIf
Code: Select all
If OpenWindow(0, 0, 0, 235, 100, "DateGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
gid=DateGadget(0, 10, 10, 210, 25, "Date: %mm/%dd/%yyyy Time: %hh:%ii")
; Next line is required for Tab, but doesn't make it work with Shift+Tab. :(
SetWindowLongPtr_(gid,#GWL_STYLE,GetWindowLongPtr_(gid,#GWL_STYLE)!#WS_TABSTOP)
ButtonGadget(1, 10, 45, 210, 25, "test")
SetActiveGadget(0)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = 1
Case #WM_KEYDOWN
If GetActiveGadget() = 0 And EventwParam() = 9
If GetAsyncKeyState_(#VK_SHIFT)
Debug "this is never seen!"
keybd_event_(#VK_LEFT,0,0,0)
keybd_event_(#VK_LEFT,0,#KEYEVENTF_KEYUP,0)
Else
keybd_event_(#VK_RIGHT,0,0,0)
keybd_event_(#VK_RIGHT,0,#KEYEVENTF_KEYUP,0)
EndIf
EndIf
EndSelect
Until Quit = 1
EndIf
Code: Select all
If OpenWindow(0, 0, 0, 235, 100, "DateGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
gid=DateGadget(0, 10, 10, 210, 25, "Date: %mm/%dd/%yyyy Time: %hh:%ii")
ButtonGadget(1, 10, 45, 210, 25, "test")
AddKeyboardShortcut(0,#PB_Shortcut_Tab,10)
AddKeyboardShortcut(0,#PB_Shortcut_Tab|#PB_Shortcut_Shift ,20)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = 1
Case #PB_Event_Menu
Select EventMenu()
Case 10
If GetActiveGadget() = 0
keybd_event_(#VK_RIGHT,0,0,0)
keybd_event_(#VK_RIGHT,0,#KEYEVENTF_KEYUP,0)
EndIf
Case 20
If GetActiveGadget() = 0
keybd_event_(#VK_LEFT,0,0,0)
keybd_event_(#VK_LEFT,0,#KEYEVENTF_KEYUP,0)
EndIf
EndSelect
EndSelect
Until Quit = 1
EndIf
Code: Select all
EnableExplicit
Procedure.i WindowCallback(Handle.i,Message.i,wParam.i,lParam.i)
If #WM_GETDLGCODE
Select wParam
Case #DLGC_WANTTAB
If lParam And GetKeyState_(#VK_SHIFT) & 1
Debug 1
Else
Debug 0
EndIf
EndSelect
EndIf
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
If OpenWindow(0,#Null,#Null,240,300,#Null$,#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
SetWindowCallback(@WindowCallback())
If DateGadget(1,10,10,210,25,"Date: %mm/%dd/%yyyy Time: %hh:%ii") And ButtonGadget(2,10,100,50,20,"Test")
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
CloseWindow(0)
EndIf
End
My code was just an example... of course my real app has more than one gadget.RASHAD wrote:How can I know when you changed your mind
Code: Select all
Procedure WindowProc(hWnd,uMsg,wParam,lParam)
Result = #PB_ProcessPureBasicEvents
Select uMsg
Case #WM_MOVE
ResizeWindow(1,WindowX(0)+14,WindowY(0)+35,#PB_Ignore, #PB_Ignore)
Case #WM_NCACTIVATE
Result = 1
EndSelect
ProcedureReturn Result
EndProcedure
If OpenWindow(0, 0, 0, 235, 100, "DateGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
OpenWindow(1, WindowX(0)+14,WindowY(0)+35, 210, 25, "", #PB_Window_BorderLess,WindowID(0))
UseGadgetList(WindowID(1))
DateGadget(0, 0, 0, 210, 25, "Date: %mm/%dd/%yyyy Time: %hh:%ii")
UseGadgetList(WindowID(0))
ButtonGadget(1, 10, 45, 100, 25, "test")
ButtonGadget(2, 120, 45, 100, 25, "test 2")
AddKeyboardShortcut(1,#PB_Shortcut_Tab,10)
AddKeyboardShortcut(1,#PB_Shortcut_Tab|#PB_Shortcut_Shift ,20)
SetActiveWindow(0)
SetWindowCallback(@WindowProc())
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = 1
Case #PB_Event_Menu
Select EventMenu()
Case 10
If GetActiveGadget() = 0
keybd_event_(#VK_RIGHT,0,0,0)
keybd_event_(#VK_RIGHT,0,#KEYEVENTF_KEYUP,0)
EndIf
Case 20
If GetActiveGadget() = 0
keybd_event_(#VK_LEFT,0,0,0)
keybd_event_(#VK_LEFT,0,#KEYEVENTF_KEYUP,0)
EndIf
EndSelect
EndSelect
Until Quit = 1
EndIf