【已解决】普通按钮 如何做出Toolbar的 效果?
本帖最后由 imutraveler 于 2017-2-12 11:41 编辑想要达到的效果如下:
1.按钮无边框,无突出
2.Toolbar中的_GUICtrlToolbar_AddButtonSep() 也就是分割线,普通按钮中怎么实现?
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiImageList.au3>
#include <GUIToolBar.au3>
#include <GuiButton.au3>
Global Enum $cmd01 = 1000, $cmd02, $cmd03, $cmd04
$Form1 = GUICreate("Example", 500, 280)
$hImage = _GUIImageList_Create(32, 32, 5, 3)
_GUIImageList_AddIcon($hImage, 'shell32.dll', 110, True)
_GUIImageList_AddIcon($hImage, 'shell32.dll', 137, True)
_GUIImageList_AddIcon($hImage, 'shell32.dll', 146, True)
_GUIImageList_AddIcon($hImage, 'shell32.dll', 128, True)
$hToolbar = _GUICtrlToolbar_Create($Form1, BitOR($TBSTYLE_FLAT, $TBSTYLE_LIST))
_GUICtrlToolbar_SetImageList($hToolbar, $hImage)
_GUICtrlToolbar_SetIndent($hToolbar, 8)
_GUICtrlToolbar_AddButton($hToolbar, $cmd01, 0, _GUICtrlToolbar_AddString($hToolbar, "工具栏按钮01"))
_GUICtrlToolbar_AddButtonSep($hToolbar)
_GUICtrlToolbar_AddButton($hToolbar, $cmd02, 1, _GUICtrlToolbar_AddString($hToolbar, "工具栏按钮02"))
_GUICtrlToolbar_AddButton($hToolbar, $cmd03, 2, _GUICtrlToolbar_AddString($hToolbar, "工具栏按钮03"))
_GUICtrlToolbar_AddButtonSep($hToolbar)
_GUICtrlToolbar_AddButton($hToolbar, $cmd04, 3, _GUICtrlToolbar_AddString($hToolbar, "工具栏按钮04"))
$BtnGroup = GUICtrlCreateGroup("", 3, 53, 494, 60)
$Btn01 = GUICtrlCreateButton("普通的按钮01", 7, 65, 119, 40)
GUICtrlSetFont(-1, 9, 400, 0, "Microsoft Yahei")
$Btn02 = GUICtrlCreateButton("普通的按钮02", 130, 65, 119, 40)
GUICtrlSetFont(-1, 9, 400, 0, "Microsoft Yahei")
$Btn03 = GUICtrlCreateButton("普通的按钮03", 247, 65, 119, 40)
GUICtrlSetFont(-1, 9, 400, 0, "Microsoft Yahei")
$Btn04 = GUICtrlCreateButton("普通的按钮04", 370, 65, 119, 40)
GUICtrlSetFont(-1, 9, 400, 0, "Microsoft Yahei")
_GUICtrlButton_SetImageList($Btn01, _GetImageListHandle("shell32.dll", 110, True), 0)
_GUICtrlButton_SetImageList($Btn02, _GetImageListHandle("shell32.dll", 137, True), 0)
_GUICtrlButton_SetImageList($Btn03, _GetImageListHandle("shell32.dll", 146, True), 0)
_GUICtrlButton_SetImageList($Btn04, _GetImageListHandle("shell32.dll", 128, True), 0)
GUISetState()
Func _GetImageListHandle($sFile, $nIconID = 0, $bLarge = False)
Local $iSize = 16
If $bLarge Then $iSize = 32
Local $hImage = _GUIImageList_Create($iSize, $iSize, 5, 3)
If StringUpper(StringMid($sFile, StringLen($sFile) - 2)) = "BMP" Then
_GUIImageList_AddBitmap($hImage, $sFile)
Else
_GUIImageList_AddIcon($hImage, $sFile, $nIconID, $bLarge)
EndIf
Return $hImage
EndFunc ;==>_GetImageListHandle
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd 想要达到的效果如下:
1.按钮无边框,无突出
2.Toolbar中的_GUICtrlToolbar_AddButtonSep() 也就是分割线 ...
imutraveler 发表于 2016-11-3 00:47 http://www.autoitx.com/images/common/back.gif
是这种效果?
回复 2# chzj589
界面你玩的很6啊。 贴下源码分享下吧 本帖最后由 imutraveler 于 2016-11-3 20:35 编辑
回复 2# chzj589
恩呢,是的, 不知道分隔符是怎么实现的~~~
包括GUI中其他位置想添加个 横向,竖向的 分隔符也不知道怎么实现。用label试过画一条灰色的线,感觉效果不好!不是透明的!
还有就是按钮能不能 做成无边框, 无突出, 就和 toolbar类似的 效果呢? 回复chzj589
恩呢,是的, 不知道分隔符是怎么实现的~~~
包括GUI中其他位置想添加个 横 ...
imutraveler 发表于 2016-11-3 19:57 http://www.autoitx.com/images/common/back.gif
就是用Label画的,横竖都是。
按钮无边框也是用Label
背景颜色跟图面一样就行 回复 6# chzj589
那有没有 代码呢?就是按钮看起来和Toolbar按钮一样,普通按钮看着是和界面一个平面的,能不能做到呢? 回复chzj589
那有没有 代码呢?就是按钮看起来和Toolbar按钮一样,普通按钮看着是和界面一个平 ...
imutraveler 发表于 2016-11-3 21:37 http://www.autoitx.com/images/common/back.gif
这样子?
图标不能用,要用位图 回复 8# chzj589
代码:
$BtnGroup = GUICtrlCreateGroup("", 3, 53, 510, 60)
$ad = @ScriptDir & "\w1.jpg"
$pBG = GUICtrlCreatePic($ad, 7, 66, 121, 39)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateGroup("", 7, 60, 121, 45)
$Btn01a = GUICtrlCreateLabel("", 20, 77, 105, 30);普通的按钮01
GUICtrlSetFont(-1, 12, 400, 0, "微软雅黑")
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetBkColor(-1, -2)
GUICtrlSetCursor(-1, 0)
GUICtrlCreateLabel("", 133, 65, 1, 40)
GUICtrlSetBkColor(-1, 0xC0C0A5)
自己再研究研究吧 回复 9# chzj589
嗯,好的 ,,还有个问题,,toolbar只能从左上角 开始么??
1. 我试过用_GUICtrlToolbar_SetIndent() 做 缩进,,,从GUI中间开始创建第一个按钮,但是在左侧缩进的位置,创建 文本框和按钮 做 搜索功能,,这两个控件被toolbar窗口覆盖了!
2. 试过用子窗口内嵌,然后在子窗口中创建toolbar, 可是有个新问题就是,点击toolbar按钮,父窗口会失去焦点!!#Region ;**** 由 AccAu3Wrapper_GUI 创建指令 ****
#AccAu3Wrapper_OutFile=按钮和工具栏.exe
#AccAu3Wrapper_UseX64=n
#AccAu3Wrapper_Res_Language=2052
#AccAu3Wrapper_Res_requestedExecutionLevel=None
#EndRegion ;**** 由 AccAu3Wrapper_GUI 创建指令 ****
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiImageList.au3>
#include <GUIToolBar.au3>
#include <GuiButton.au3>
Global Enum $cmd01 = 1000, $cmd02, $cmd03, $cmd04
$Form1 = GUICreate("Example", 500, 280, -1, -1, $WS_EX_LAYERED)
$hImage = _GUIImageList_Create(32, 32, 5, 3)
_GUIImageList_AddIcon($hImage, 'shell32.dll', 110, True)
_GUIImageList_AddIcon($hImage, 'shell32.dll', 137, True)
_GUIImageList_AddIcon($hImage, 'shell32.dll', 146, True)
_GUIImageList_AddIcon($hImage, 'shell32.dll', 128, True)
$hToolbar = _GUICtrlToolbar_Create($Form1, BitOR($TBSTYLE_FLAT, $TBSTYLE_LIST))
_GUICtrlToolbar_SetImageList($hToolbar, $hImage)
_GUICtrlToolbar_SetIndent($hToolbar, 155)
_GUICtrlToolbar_AddButton($hToolbar, $cmd01, 0, _GUICtrlToolbar_AddString($hToolbar, "按钮01"))
_GUICtrlToolbar_AddButtonSep($hToolbar)
_GUICtrlToolbar_AddButton($hToolbar, $cmd02, 1, _GUICtrlToolbar_AddString($hToolbar, "按钮02"))
_GUICtrlToolbar_AddButton($hToolbar, $cmd03, 2, _GUICtrlToolbar_AddString($hToolbar, "按钮03"))
_GUICtrlToolbar_AddButtonSep($hToolbar)
_GUICtrlToolbar_AddButton($hToolbar, 0, 3, _GUICtrlToolbar_AddString($hToolbar, "按钮04"))
GUICtrlCreateGroup("", 5, -2, 145, 40)
$SearchText = GUICtrlCreateInput("", 11, 9, 80, 23)
$SearchBtn = GUICtrlCreateButton("查找", 95, 8, 50, 25)
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd {:face (382):} 感谢高手分享
页:
[1]