如何删除按钮边框样式?

时间:2015-06-16 19:13:26

标签: button styles autohotkey

在autohotkey中,如何删除黑色按钮边框?我只想要一个没有任何边框的按钮。

我尝试过所有这些样式修饰符都无济于事。

gui, add, button, hwndMyButton
Control, Style, -0x0,,   ahk_id %MyButton%     ;remove BS_PUSHBUTTON
Control, Style, -0x1,,   ahk_id %MyButton%     ;remove BS_DEFPUSHBUTTON
Control, Style, +0x8000,,ahk_id %MyButton%     ;add BS_FLAT
Control, Style, +0x40,,  ahk_id %MyButton%     ;add BS_ICON

2 个答案:

答案 0 :(得分:3)

JoeDF有一个很好的例子,但我并不想添加这么大的图书馆(它确实比我需要的更多。

所以,我只是使用了一个图片控件。

gui, add, picture h16 w16 vMyButton gMyProcedure, icon0, mydll

然后我写了一个很小的library called Mousey,它会将光标变成一只手,这样当鼠标经过它时用户就知道它是一个按钮。当您点击图标时,很容易使图标发生变化 - 因此您可以使用此程序显示"按下"并且"未压缩"的状态。

效果是我现在有一个很好的小图标,用于"按钮"。

;http://ahkscript.org/boards/viewtopic.php?p=48057#p48057
#SingleInstance, On
#NoEnv
SetBatchLines, -1
#include mousey.ahk

toggle := 0
gui, add, picture, h32 vIconButton hwndIconButton gtoggleicon icon45, shell32.dll
mouseycursor := mousey_init(IconButton,"hand")
gui, show
return

toggleicon:
    if(toggle){
        guicontrol,,IconButton, *icon45 shell32.dll
        toggle := 0
    }else{
        guicontrol,,IconButton, *icon28 shell32.dll
        toggle := 1
    }
return

guiclose:
    mousey_close(mouseycursor)
    exitapp

答案 1 :(得分:2)

您可以使用图像完全自定义GUI。在我们的例子中,它是按钮。

[Class] ImageButton

AHK GUI的图像按钮。

来源:https://github.com/AHK-just-me/Class_ImageButton
论坛主题:http://ahkscript.org/boards/viewtopic.php?t=1103
这里提供了一个示例:https://github.com/AHK-just-me/Class_ImageButton/blob/master/Sources/Sample.ahk

缩短的例子

#NoEnv
SetBatchLines, -1
#Include Class_ImageButton.ahk
; ----------------------------------------------------------------------------------------------------------------------
Gui, DummyGUI:Add, Pic, hwndHPIC, PIC1.jpg
SendMessage, 0x0173, 0, 0, , ahk_id %HPIC% ; STM_GETIMAGE
HPIC1 := ErrorLevel
GuiColor := "Blue"
Gui, Margin, 50, 20
Gui, Font, s10
Gui, Color, %GuiColor%
ImageButton.SetGuiColor(GuiColor)
Gui, Add, Button, vBT1 w200 hwndHBT1, Button 1`nLine 2
Opt1 := [0, 0x80CF0000, , "White", "H", , "Red", 4]         ; normal flat background & text color
Opt2 := [ , "Red"]                                          ; hot flat background color
Opt5 := [ , , ,"Gray"]                                      ; defaulted text color -> animation
If !ImageButton.Create(HBT1, Opt1, Opt2, , , Opt5)
   MsgBox, 0, ImageButton Error Btn1, % ImageButton.LastError
Gui, Show, , Image Buttons
Return
; ----------------------------------------------------------------------------------------------------------------------
GuiClose:
GuiEscape:
ExitApp