Page 1 of 1

Left Button Double Click 4 CalendarGadget [Windows]

Posted: Tue May 21, 2019 10:30 am
by RASHAD
Hi

Code: Select all

Procedure IsMouseOver(hWnd) 
  GetWindowRect_(hWnd,r.RECT) 
  GetCursorPos_(p.POINT) 
  Result = PtInRect_(r,p\y << 32 + p\x) 
  ProcedureReturn Result 
EndProcedure 

If OpenWindow(0,0,0,320,200,"",#PB_Window_SystemMenu| #PB_Window_ScreenCentered)
CalendarGadget(0, 10, 10, 230, 180)
ButtonGadget(1,250,10,60,25,"TEST")

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
       Quit=1
       
    Case #WM_LBUTTONUP
      If IsMouseOver(GadgetID(0)) And GetTickCount_() - oTime < GetDoubleClickTime_()
        Debug "Left Button Double Clicked"
        Result = GetGadgetState(0)
        SetGadgetState(0,Result)        
        Debug Day(Result)
      EndIf
      oTime = GetTickCount_()      
  EndSelect
Until Quit
EndIf

Re: Left Button Double Click 4 CalenderGadget [Windows]

Posted: Tue May 21, 2019 3:59 pm
by RASHAD
# 2:

Code: Select all

If OpenWindow(0,0,0,320,200,"",#PB_Window_SystemMenu| #PB_Window_ScreenCentered)
  CalendarGadget(0, 10, 10, 230, 180)
  ButtonGadget(1,250,10,60,25,"TEST")

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Quit=1
       
    Case #WM_LBUTTONUP
      GetCursorPos_(@p.point)
      gadid = WindowFromPoint_(p\y << 32 + p\x) 
      If gadid = GadgetID(0) And GetTickCount_() - oTime < GetDoubleClickTime_()
        Debug "Left Button Double Clicked"
        Result = GetGadgetState(0)
        SetGadgetState(0,Result)        
        Debug Day(Result)
      EndIf
      oTime = GetTickCount_()      
  EndSelect
Until Quit
EndIf

Re: Left Button Double Click 4 CalenderGadget [Windows]

Posted: Tue May 21, 2019 4:51 pm
by VB6_to_PBx
RASHAD ,

both examples work great ,
thank you !

Re: Left Button Double Click 4 CalenderGadget [Windows]

Posted: Tue May 21, 2019 5:21 pm
by RASHAD
@VB6_to_PBx
Thanks so much

# 3:

Code: Select all

If OpenWindow(0,0,0,320,200,"",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CalendarGadget(0, 10, 10, 230, 180)
SetClassLongPtr_(GadgetID(0), #GCL_STYLE, GetClassLongPtr_(GadgetID(0), #GCL_STYLE) !#CS_DBLCLKS)
ButtonGadget(1,250,10,60,25,"TEST")

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Quit=1
       
    Case #WM_LBUTTONDBLCLK
      GetCursorPos_(@p.point)
      gadid = WindowFromPoint_(p\y << 32 + p\x) 
      If gadid = GadgetID(0)
        Debug "Left Button Double Clicked"
        Result = GetGadgetState(0)
        SetGadgetState(0,Result)        
        Debug Day(Result)
      EndIf
  EndSelect
Until Quit
EndIf