Ticket #705: ToolbaButtonClickTest.au3

File ToolbaButtonClickTest.au3, 2.9 KB (added by anonymous, 17 years ago)
Line 
1
2#include <GuiToolbar.au3>
3#include <GuiConstantsEx.au3>
4#include <WindowsConstants.au3>
5#include <Constants.au3>
6
7Opt('MustDeclareVars', 1)
8
9$Debug_TB = False ; Check ClassName being passed to functions, set to True and use a handle to another control to see it work
10
11Global $hToolbar, $iMemo
12Global $iItem ; Command identifier of the button associated with the notification.
13Global Enum $idNew = 1000, $idOpen, $idSave, $idHelp
14
15_Main()
16
17Func _Main()
18 Local $hGUI, $aSize
19
20 ; Create GUI
21 $hGUI = GUICreate("Toolbar", 600, 400)
22 $hToolbar = _GUICtrlToolbar_Create ($hGUI)
23 $aSize = _GUICtrlToolbar_GetMaxSize ($hToolbar)
24
25 $iMemo = GUICtrlCreateEdit("", 2, $aSize[1] + 20, 596, 396 - ($aSize[1] + 20), $WS_VSCROLL)
26 GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
27 GUISetState()
28 GUIRegisterMsg($WM_NOTIFY, "_WM_NOTIFY")
29
30 ; Add standard system bitmaps
31 _GUICtrlToolbar_AddBitmap ($hToolbar, 1, -1, $IDB_STD_LARGE_COLOR)
32
33 ; Add buttons
34 _GUICtrlToolbar_AddButton ($hToolbar, $idNew, $STD_FILENEW)
35 _GUICtrlToolbar_AddButton ($hToolbar, $idOpen, $STD_FILEOPEN)
36 _GUICtrlToolbar_AddButton ($hToolbar, $idSave, $STD_FILESAVE)
37 _GUICtrlToolbar_AddButtonSep ($hToolbar)
38 _GUICtrlToolbar_AddButton ($hToolbar, $idHelp, $STD_HELP)
39
40 ; Loop until user exits
41 Do
42 Until GUIGetMsg() = $GUI_EVENT_CLOSE
43
44EndFunc ;==>_Main
45
46; Write message to memo
47Func MemoWrite($sMessage = "")
48 GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
49EndFunc ;==>MemoWrite
50
51; WM_NOTIFY event handler
52Func _WM_NOTIFY($hWndGUI, $MsgID, $wParam, $lParam)
53 #forceref $hWndGUI, $MsgID, $wParam
54 Local $tNMHDR, $event, $hwndFrom, $code, $i_idNew, $dwFlags, $lResult, $idFrom, $i_idOld
55 Local $tNMTOOLBAR, $tNMTBHOTITEM
56 $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
57 $hwndFrom = DllStructGetData($tNMHDR, "hWndFrom")
58 $idFrom = DllStructGetData($tNMHDR, "IDFrom")
59 $code = DllStructGetData($tNMHDR, "Code")
60 Switch $hwndFrom
61 Case $hToolbar
62 Switch $code
63 Case $NM_LDOWN
64 ;----------------------------------------------------------------------------------------------
65 MemoWrite("$NM_LDOWN: Clicked Item: " & $iItem & " at index: " & _GUICtrlToolbar_CommandToIndex ($hToolbar, $iItem))
66 ;----------------------------------------------------------------------------------------------
67 Case $TBN_HOTITEMCHANGE
68 $tNMTBHOTITEM = DllStructCreate($tagNMTBHOTITEM, $lParam)
69 $i_idOld = DllStructGetData($tNMTBHOTITEM, "idOld")
70 $i_idNew = DllStructGetData($tNMTBHOTITEM, "idNew")
71 $iItem = $i_idNew
72 $dwFlags = DllStructGetData($tNMTBHOTITEM, "dwFlags")
73
74 EndSwitch
75 EndSwitch
76 Return $GUI_RUNDEFMSG
77EndFunc ;==>_WM_NOTIFY
78