Toolbar - Drag Dialog Using Toolbar

Category: Controls - .Techniques

Date: 02-16-2022

Return to Index


 
'Compilable Example:  (Jose Includes)
#Compile Exe
#Dim All
%Unicode=1
#Include "Win32API.inc"
%IDC_Toolbar = 500
%IDC_ButtonX = 501
%IDC_ButtonY = 502
 
Global hDlg, hToolbar As Dword, OldProc As Long
 
Function PBMain()
   Dialog New Pixels, 0, "Toolbar Test",,, 500,250, %WS_OverlappedWindow, To hDlg
   Control Add Toolbar, hDlg, %IDC_Toolbar,"", 0,0,0,0
   Control Handle hDlg, %IDC_Toolbar To hToolbar
   Toolbar Add Button    hDlg, %IDC_Toolbar, 1, 200, %TbStyle_Button, "x"
   Toolbar Add Button    hDlg, %IDC_Toolbar, 2, 201, %TbStyle_Button, "y"
   Dialog Show Modal hDlg Call DlgProc
End Function
 
CallBack Function DlgProc() As Long
   Select Case Cb.Msg
      Case %WM_InitDialog
         OldProc = SetWindowLong(hToolbar, %GWL_WndProc, CodePtr(NewProc))   'subclass a control
      Case %WM_ContextMenu
         Dialog End hDlg
      Case %WM_LButtonDown
         If Cb.WParam = %MK_LBUTTON Then SendMessage hDlg, %WM_NCLButtonDown, %HTCaption, ByVal %Null  ' force drag
      Case %WM_Destroy
         SetWindowLong hToolbar, %GWL_WNDPROC, OldProc   'un-subclass, restore original window procedure
   End Select
End Function
 
Function NewProc(ByVal hWnd As LongByVal Msg As LongByVal wParam As LongByVal lParam As LongAs Long
   Select Case Msg
      Case %WM_LButtonDown
         If wParam = %MK_LBUTTON Then SendMessage hDlg, %WM_NCLButtonDown, %HTCaption, ByVal %Null  ' force drag
   End Select
   Function = CallWindowProc(OldProc, hWnd, Msg, wParam, lParam)
End Function
 
'gbs_00811
'Date: 03-10-2012
 


created by gbSnippets
http://www.garybeene.com/sw/gbsnippets.htm