在下 发表于 2011-6-4 21:35:44

请高手帮助做一个桌面工具条

本帖最后由 在下 于 2011-6-4 21:43 编辑




请高手帮助做一个象“FastStone Capture”这个软件一样的桌面工具条窗体(不需要好看的SKIN)。
下面这些我都不知道如何弄:
1、按钮之间的分隔线;
2、点击(有▼标记的)按钮展开菜单;
3、只有最小化和关闭按钮(不要最大化按钮);
4、运行之后不在桌面任务栏显示,只在任务栏右边的通知区域显示。
5、工具条按钮上如何显示图标。
请高手帮助做一个这样的例子脚本学习一下,万分感谢! 

还有就是 按钮旁的文字 有的是显示在图标下面,有的是显示在图标右边是如何弄的?

131738 发表于 2011-6-4 21:59:14

使用 _GUICtrlToolbar_* 类函数。。。。。。。。。

在下 发表于 2011-6-5 06:26:45

谢谢131738 ,我看看帮助文档,慢慢的一个一个的查了。

在下 发表于 2011-6-5 12:08:37

本帖最后由 在下 于 2011-6-5 14:35 编辑

自己参考帮助及例子(用有道词典翻译),做了一个,真难搞,函数、参数太多了。

#include <GuiToolbar.au3>
#include <GuiMenu.au3>
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>

Opt('MustDeclareVars', 1)

$Debug_TB = False ; Check ClassName being passed to functions, set to True and use a handle to another control to see it work
Global $hGUI, $hToolbar
Global Enum $idNew = 1000, $idOpen, $idSave, $idHelp

_Main()

Func _Main()

; Create GUI
        $hGUI = GUICreate("Toolbar", 200, 33,-1,-1,-1, BitOR($WS_EX_TOPMOST,$WS_EX_TOOLWINDOW))
;~         $hGUI = GUICreate("Toolbar", 250, 33,-1,-1,BitOR($WS_SYSMENU,$WS_CAPTION,$WS_MINIMIZEBOX), $WS_EX_TOPMOST)
        $hToolbar = _GUICtrlToolbar_Create ($hGUI)
        _GUICtrlToolbar_SetExtendedStyle($hToolbar, $TBSTYLE_EX_DRAWDDARROWS)
        GUISetState()

        ; Add standard system bitmaps
    Switch _GUICtrlToolbar_GetBitmapFlags ($hToolbar)
      Case 2
            _GUICtrlToolbar_AddBitmap ($hToolbar, 1, -1, $IDB_STD_SMALL_COLOR)
      Case 0
            _GUICtrlToolbar_AddBitmap ($hToolbar, 1, -1, $IDB_STD_LARGE_COLOR)
    EndSwitch

        ; Add buttons
        _GUICtrlToolbar_AddButton($hToolbar, $idNew, $STD_FILENEW, 0,$BTNS_WHOLEDROPDOWN )                         ;指定的按钮将会有一个下拉箭头         
;~         _GUICtrlToolbar_AddButton($hToolbar, $idNew, $STD_FILENEW, 0,$BTNS_DROPDOWN)                     ;创建一个下拉列表风格按钮,可以显示一个列表
        _GUICtrlToolbar_AddButton($hToolbar, $idOpen, $STD_FILEOPEN)
        _GUICtrlToolbar_AddButton($hToolbar, $idSave, $STD_FILESAVE)
        _GUICtrlToolbar_AddButtonSep($hToolbar)
    _GUICtrlToolbar_AddButton($hToolbar, $idHelp, $STD_HELP)

    ; Register message handlers
        GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
        GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

        ; Loop until user exits
        Do
        Until GUIGetMsg() = $GUI_EVENT_CLOSE

EndFunc   ;==>_Main

; Handle TBN_DROPDOWN message
Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
        Local $tNMHDR, $iCode, $hMenu

        $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
        $iCode = DllStructGetData($tNMHDR, "Code")

        If $iCode = $TBN_DROPDOWN Then                                                               ;   
                $hMenu = _GUICtrlMenu_CreatePopup()
                _GUICtrlMenu_AddMenuItem($hMenu, "Template 1", 2000)
                _GUICtrlMenu_AddMenuItem($hMenu, "Template 2", 2001)
                _GUICtrlMenu_AddMenuItem($hMenu, "Template 3", 2002)
                _GUICtrlMenu_AddMenuItem($hMenu, "", 0)
                _GUICtrlMenu_AddMenuItem($hMenu, "Template 4", 2003)
                _GUICtrlMenu_AddMenuItem($hMenu, "Template 5", 2004)
      _GUICtrlMenu_TrackPopupMenu($hMenu, $hGUI)
      _GUICtrlMenu_DestroyMenu($hMenu)
        EndIf
        Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NOTIFY

; Handle WM_COMMAND messages
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
        Switch $iwParam
                Case 2000
                        _WinAPI_ShowMsg ("Template 1")
                Case 2001
                        _WinAPI_ShowMsg ("Template 2")
                Case 2002
                        _WinAPI_ShowMsg ("Template 3")
                Case $idOpen
                    _WinAPI_ShowMsg ("Open")
        EndSwitch
EndFunc   ;==>WM_COMMAND

逆水风帆 发表于 2011-6-5 18:56:57

有这软件的初级入门教程么,我看着也很头大

浪迹红客 发表于 2011-6-6 07:51:36

路过。。。。。。。。

abc... 发表于 2011-6-6 07:55:41

多看帮助,主要是对函数不熟。。

yjje220222 发表于 2012-11-13 12:17:37

挺好看,收藏下来学习

勇者不坏 发表于 2013-6-27 17:07:07

东西太多值得学习下

mountain 发表于 2013-8-28 09:42:16

收藏了,不错

gpstart 发表于 2013-9-29 15:15:01

带界面的有没有

freewaybsq 发表于 2013-10-31 11:40:58

不错,顶一下

deaph 发表于 2014-10-13 17:24:25

感谢分享,学习了!!!

netegg 发表于 2014-12-12 16:37:30

回复 1# 在下
1,2,4,5都不是问题,3没可能,除非自己画

jsdn2000 发表于 2016-12-27 15:10:05

如果请高手动手做,请放在交易区,出RMB。
页: [1] 2
查看完整版本: 请高手帮助做一个桌面工具条