找回密码
 加入
搜索
查看: 5838|回复: 16

[AU3基础] 在不使用OnEvent事件函数通知的情况下如何让工具栏按钮有作用??

 火.. [复制链接]
发表于 2016-9-5 02:15:42 | 显示全部楼层 |阅读模式
程序代码 如下:

请问 如何在不使用OnEvent事件函数通知的情况下如何让工具栏按钮有作用??

求高手帮忙改一下  谢谢!!

#include <GuiToolbar.au3>  
#include <GuiMenu.au3> 
#include <GuiToolTip.au3> 

#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>

#include <GUIComboBox.au3>

#include <Constants.au3>
#include <GuiImageList.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <FontConstants.au3>

Opt("GUIOnEventMode", 0)
        
$WinSub = GUICreate(" 基本数据设定" , 800,600, -1, -1, BitOR($WS_MAXIMIZEBOX, $WS_MINIMIZEBOX, $WS_SYSMENU, $WS_GROUP, $WS_TABSTOP), -1 );BitOR($WS_CHILD, $WS_MINIMIZEBOX, $WS_CAPTION, $WS_SYSMENU)
        
$hToolbarSub=_GUICtrlToolbar_Create($WinSub);工具条
_GUICtrlToolbar_SetStyleCustomErase($hToolbarSub, True)
_GUICtrlToolbar_SetExtendedStyle($hToolbarSub, $TBSTYLE_EX_DRAWDDARROWS)
        
        
$hImage = _GUIImageList_Create(16, 16, 5, 3, 4)
        
_GUIImageList_AddIcon($hImage, "shell32.dll", 15, True)
_GUIImageList_AddIcon($hImage, "shell32.dll", 16, True)
_GUICtrlToolbar_SetImageList($hToolbarSub, $hImage)
; 添加按钮
_GUICtrlToolbar_AddButton($hToolbarSub, 901, 0, _GUICtrlToolbar_AddString($hToolbarSub, "新增"))
_GUICtrlToolbar_AddButton($hToolbarSub, 902, 1, _GUICtrlToolbar_AddString($hToolbarSub, "存档"))

        
$aSize = _GUICtrlToolbar_GetButtonSize($hToolbarSub)
_GUICtrlToolbar_SetButtonSize($hToolbarSub, $aSize[0], 50)
        
$Label1 = GUICtrlCreateLabel("_", 0, 43, @DesktopWidth, 1, 0x1000)  ;线条的部份
GUICtrlSetResizing(-1,802)


GUISetState()
        While 1
                Switch guigetmsg()
                        Case $GUI_EVENT_CLOSE
                                EXIT

                        Case 901
                                GuiSetState(@SW_DISABLE,$WinSub) ; 禁用窗口,以防用户作出其他更改
                                
                                MsgBox(0,"","新增按钮")
                                
                                WinActivate($WinSUB,"")
                                GuiSetState(@SW_ENABLE,$WinSub) ; 使窗口重新可用

                EndSwitch
        Sleep(10)
        WEnd
发表于 2016-9-5 07:03:53 | 显示全部楼层
回复 1# kk_lee69

好象要加上:GUIRegisterMsg($WM_NOTIFY, "_WM_NOTIFY")
发表于 2016-9-5 09:37:44 | 显示全部楼层
一直对循环模式的事件不晓得怎么弄,留名学习。
 楼主| 发表于 2016-9-5 10:29:23 | 显示全部楼层
回复 2# chzj589

就是要找  不使用  GUIRegisterMsg($WM_NOTIFY, "_WM_NOTIFY") 的方法
 楼主| 发表于 2016-9-5 15:18:02 | 显示全部楼层
回复 2# chzj589

有沒有辦法用 BUTTON 模仿出工具列的感覺
发表于 2016-9-5 15:19:16 | 显示全部楼层
回复 5# kk_lee69

K大  你在研究啥呢,没太明白。
 楼主| 发表于 2016-9-5 15:25:41 | 显示全部楼层
回复 6# heroxianf

上面的 範例  請讓我的工作列按鈕 可以作用即可

不可以使用
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

這兩個 要讓 按鈕 按下去 有作用

或者  可以直接利用BUTTON 模仿出 這個效果 也可以解決我的問題
发表于 2016-9-5 15:38:16 | 显示全部楼层
本帖最后由 chzj589 于 2016-9-5 16:03 编辑

回复 5# kk_lee69

用 BUTTON 模仿出工具栏

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2016-9-5 15:54:48 | 显示全部楼层
回复 8# chzj589

工具列是个什么东东?
 楼主| 发表于 2016-9-5 16:01:29 | 显示全部楼层
回复 9# heroxianf

工具栏  TOOLBAR
发表于 2016-9-5 16:02:11 | 显示全部楼层
回复 7# kk_lee69

用 BUTTON 模仿出工具栏
#include <GuiToolbar.au3>
#include <GuiMenu.au3>
#include <GuiToolTip.au3>
#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <GUIComboBox.au3>
#include <Constants.au3>
#include <GuiImageList.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <FontConstants.au3>
#include <GuiButton.au3>

;Opt("GUIOnEventMode", 0)
Global $iCmdID, $hWndGUI, $MsgID, $wParam, $lParam, $e_idSave, $aStrings[5]

$WinSub = GUICreate(" 基本数据设定", 800, 600, -1, -1, BitOR($WS_MAXIMIZEBOX, $WS_MINIMIZEBOX, $WS_SYSMENU, $WS_GROUP, $WS_TABSTOP), -1);BitOR($WS_CHILD, $WS_MINIMIZEBOX, $WS_CAPTION, $WS_SYSMENU)
$Button1 = GUICtrlCreateLabel("新增按钮", 10, 60, 60, 30)
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetBkColor(-1, -2)
GUICtrlSetCursor(-1, 0)
$MenButton1 = GUICtrlCreateButton("", 10, 5, 48, 48, $WS_EX_WINDOWEDGE)
$hImage = _GUIImageList_Create(40, 40, 5, 1, 0)
_GUICtrlButton_SetImageList($MenButton1, _set_button_image_maxx(39), 5)
$Button2 = GUICtrlCreateLabel("存档按钮", 80, 60, 60, 30)
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetBkColor(-1, -2)
GUICtrlSetCursor(-1, 0)
$MenButton2 = GUICtrlCreateButton("", 80, 5, 48, 48, $WS_EX_WINDOWEDGE)
$hImage = _GUIImageList_Create(40, 40, 5, 1, 0)
_GUICtrlButton_SetImageList($MenButton2, _set_button_image_maxx(20), 5)
$Label1 = GUICtrlCreateLabel("_", 0, 76, @DesktopWidth, 1, 0x1000)  ;线条的部份

GUICtrlSetResizing(-1,802)

GUISetState()

While 1
        Switch GUIGetMsg()
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Button1, $MenButton1
                        ;MsgBox(0, "信息", "按钮选择状态: " & _GUICtrlToolbar_IsButtonChecked($hToolbarSub, $e_idSave))
                        ;GUISetState(@SW_DISABLE, $WinSub) ; 禁用窗口,以防用户作出其他更改
                        MsgBox(0, "", "新增按钮")
                        ;WinActivate($WinSub, "")
                        ;GUISetState(@SW_ENABLE, $WinSub) ; 使窗口重新可用
                Case $Button2, $MenButton2
                        MsgBox(0, "", "存档按钮")
        EndSwitch

WEnd
Func _set_button_image_maxx($icon_index)
        Local $hImage_Temp = _GUIImageList_Create(40, 40, 5, 3, 6)
        _GUIImageList_AddIcon($hImage_Temp, "Shell32.dll", $icon_index, True)
        Return $hImage_Temp
EndFunc   ;==>_set_button_image_maxx
 楼主| 发表于 2016-9-5 16:04:30 | 显示全部楼层
回复 8# chzj589

這個 可以 可是 你應該是 按鈕歸按鈕  字是用Label 標籤處理的嗎???

方便 給我看看 上面那段 工具列的源碼嗎??
发表于 2016-9-5 16:07:26 | 显示全部楼层
回复 10# kk_lee69

哦,我之前用的是  按钮用图片填充,取消文字,采用鼠标在上面文字提示。
发表于 2016-9-5 16:09:24 | 显示全部楼层
回复 12# kk_lee69
兄弟,能行不?
发表于 2016-9-5 16:13:24 | 显示全部楼层
回复 12# kk_lee69


    楼上的源码放出了,字确实是Label标签处理的
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-22 20:54 , Processed in 0.086400 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表