Dancellot Posted September 6, 2011 Share Posted September 6, 2011 (edited) Folks, Somebody knows why _GUICtrlToolbar_Create UDF does not function correctly under Windows 7? At toolbar buttons presses, the msgboxes works perfectly in the code below running under Windows XP: expandcollapse popup#include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <GuiButton.au3> #include <StaticConstants.au3> #include <file.au3> #include <EditConstants.au3> #Include <GuiEdit.au3> #Include <Misc.au3> #include <GuiListView.au3> #Include <GuiToolBar.au3> #Include <GuiImageList.au3> Opt('MustDeclareVars', 0) Opt("GUIOnEventMode", 1) Opt("trayicondebug", 1) Global $principal, $msg, $ajudaitem2, $ajudaitem1, $sairitem, $menu, $ajuda, $iItem ;~ Variaveis da toolbar Global $astring[4] Global Enum $job = 1000, $edit, $del, $clone $principal = GUICreate("Jobs", 600, 300, -1, -1, -1) GUISetOnEvent($GUI_EVENT_CLOSE, "quit") $toolbar = _GUICtrlToolbar_Create ($principal) _GUICtrlToolbar_SetExtendedStyle($toolbar, $TBSTYLE_EX_DRAWDDARROWS) $hImage = _GUIImageList_Create(16, 16, 5, 3) _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 88) _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 88) _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 88) _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 88) _GUICtrlToolbar_SetImageList($toolbar, $hImage) _GUICtrlToolbar_SetHotImageList($toolbar, $hImage) $astring[0] = _GUICtrlToolbar_AddString ($toolbar, "&New") $astring[1] = _GUICtrlToolbar_AddString ($toolbar, "&Edit") $astring[2] = _GUICtrlToolbar_AddString ($toolbar, "&Del") $astring[3] = _GUICtrlToolbar_AddString ($toolbar, "&Clone") $newjob_t = _GUICtrlToolbar_AddButton($toolbar, $job, 0 , $astring[0]) $editjob_t = _GUICtrlToolbar_AddButton($toolbar, $edit, 1, $astring[1]) $deljob_t = _GUICtrlToolbar_AddButton($toolbar, $del, 2, $astring[2]) $clonejob_t = _GUICtrlToolbar_AddButton($toolbar, $clone, 3, $astring[3]) $menu = GUICtrlCreateMenu("File") GUICtrlCreateGroup("Jobs", 5, 55, 340, 125) $joblist = GUICtrlCreateListView("Name|Time|Repeat|Status", 10, 70, 330, 103, -1, 0x00000025) GUIRegisterMsg($WM_NOTIFY, "_WM_NOTIFY") GUISetState() While 1 Sleep(10) WEnd Func quit() Exit EndFunc Func _WM_NOTIFY($hWndGUI, $MsgID, $wParam, $lParam) #forceref $hWndGUI, $MsgID, $wParam Local $tNMHDR, $event, $hwndFrom, $code, $i_idNew, $dwFlags, $lResult, $idFrom, $i_idOld Local $tNMTOOLBAR, $tNMTBHOTITEM, $hMenu $tNMHDR = DllStructCreate($tagNMHDR, $lParam) $hwndFrom = DllStructGetData($tNMHDR, "hWndFrom") $idFrom = DllStructGetData($tNMHDR, "IDFrom") $code = DllStructGetData($tNMHDR, "Code") Switch $hwndFrom Case $toolbar Switch $code Case $NM_LDOWN Select Case $iItem = $job msgbox(0, "", "New", 2) Case $iItem = $edit msgbox(0, "", "Edit", 2) Case $iItem = $del msgbox(0, "", "Del", 2) Case $iItem = $clone msgbox(0, "", "Clone", 2) EndSelect Case $TBN_HOTITEMCHANGE $tNMTBHOTITEM = DllStructCreate($tagNMTBHOTITEM, $lParam) $i_idOld = DllStructGetData($tNMTBHOTITEM, "idOld") $i_idNew = DllStructGetData($tNMTBHOTITEM, "idNew") $iItem = $i_idNew EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>_WM_NOTIFY Thx... Edited September 6, 2011 by Dancellot Link to comment Share on other sites More sharing options...
AdmiralAlkex Posted September 6, 2011 Share Posted September 6, 2011 (edited) It's a x64 vs x86 issue. That script works fine if you run it under x86 (add #AutoIt3Wrapper_UseX64=n at the top of your script, you need SciTE4AutoIt3 for that to work) or run it with a recent AutoIt beta (they fixed structs). Edited September 6, 2011 by AdmiralAlkex .Some of my scripts: ShiftER, Codec-Control, Resolution switcher for HTC ShiftSome of my UDFs: SDL UDF, SetDefaultDllDirectories, Converting GDI+ Bitmap/Image to SDL Surface Link to comment Share on other sites More sharing options...
Dancellot Posted September 6, 2011 Author Share Posted September 6, 2011 Thx Admiral, working perfectly now... Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now