Тема: AHK: Button с картинкой (функция)
Поискал на разных форумах, маленько подкорректировал, получилось простенько и очень даже прилично.
Картинки для кнопок хранятся в ресурсах (простите, без разрешения использовал ClipMgrIcons.dll уважаемого teadrinker).
FileInstall, ClipMgrIcons.dll, ClipMgrIcons.dll
IcoDll := A_ScriptDir "\ClipMgrIcons.dll"
if !FileExist(IcoDll) {
URLDownloadToFile, % "http://content.screencast.com/users/teadrinker/folders/Files/media/7d4f94ae-cdd3-467d-b3d1-786f5e8af91c/ClipMgrIcons.dll?downloadOnly=true", % IcoDll
}
; Иконка в заголовке окна и в трее
Menu, Tray, Icon, %IcoDll%, 4
; Иконка на "кнопке"
size := 32 ; или 16
szdown := size+2
xyup := size+6
Gui, Add , Picture, w%szdown% h%szdown% E0x200 vStateDown icon1 gButton_OnClik, %IcoDll%
Gui, Add , Picture, x+-%xyup% y+-%xyup% w%size% h%size% E0x001 vStateUp icon1 gButton_OnClik, %IcoDll%
Gui, Show, w200 h70
Return
Button_OnClik:
GuiControl Hide, StateUp
tc := A_TickCount
While, GetKeyState("LButton", "P"){
If A_TickCount-tc > 1000
Break
}
GuiControl Show, StateUp
MsgBox, Ok
Return
mAction:
Return
GuiClose:
GuiEscape:
ExitApp
Для того чтобы вставить, допустим, десяток кнопок придется, увы, 10 раз дублировать один и тот же код.
Но моё желание сделать функцию типа
AddPicButton (xpos, ypos, size, num_icon, goto_action)
жестоко обломалось на том, что Gui, Add не понимает переданные параметры.
Вопрос: Может быть есть какой то обходной путь чтобы передать в команду Gui, Add (и другие, ей подобные) изменяемые параметры? Как поступают профессионалы? Неужели тупо дублируют код?