1

Тема: AHK: GUI, изменение цвета TAb после нажатия button

Добрый вечер! Подскажите пож-та, возможно ли изменить вид вкладки (цвет или шрифт), если в это вкладке была нажата кнопка. Заранее спасибо!

Gui, color, 0xFFFFFF
Gui, Font, S10 CDefault, Verdana

Gui, Add, Tab2, x30 y90 w900 h50  Buttons vTAB_BUTTON, 1|2|

Gui, Font, S14 CDefault Bold Italic, Verdana

Gui, Tab, 1
Gui, Add, Text, x102 y+40 w710 h60, Who is it?
Gui, Add, Button, v11 x60 y+30 w190 h60 g11, 1
Gui, Add, Button, v12 x+60 y248 w190 h60 g12, 2
Gui, Add, Button, v13 x+60 y248 w190 h60 g13, 3

Gui, Tab, 2
Gui, Add, Text, x102 y+40 w710 h60, WTF?
Gui, Add, Button, v21 x60 y+30 w190 h60 g21, 1
Gui, Add, Button, v22 x+60 y248 w190 h60 g22, 2
Gui, Add, Button, v23 x+60 y248 w190 h60 g23, 3

Gui, Show, w860 h724, Untitled GUI
return

11:
GuiControl, Disable, 11
GuiControl, Enable, 12
GuiControl, Enable, 13
sleep 300
GuiControl, Choose, TAB_BUTTON, 2
return


12:
GuiControl, Disable, 12
GuiControl, Enable, 11
GuiControl, Enable, 13
sleep 300
GuiControl, Choose, TAB_BUTTON, 2
return

13:
GuiControl, Disable, 13
GuiControl, Enable, 11
GuiControl, Enable, 12
sleep 300
GuiControl, Choose, TAB_BUTTON, 2
return

21:
GuiControl, Disable, 21
GuiControl, Enable, 22
GuiControl, Enable, 23
return

22:
GuiControl, Disable, 22
GuiControl, Enable, 21
GuiControl, Enable, 23
return

23:
GuiControl, Disable, 23
GuiControl, Enable, 21
GuiControl, Enable, 22
return



Esc::ExitApp

2 (изменено: teadrinker, 2018-08-24 08:16:21)

Re: AHK: GUI, изменение цвета TAb после нажатия button

Можно, но сложно, пример:

Gui, Main:Add, Tab3, x0 y0 w300 h200 hwndhTab vMainTab gChangeTab AltSubmit, Tab1|Tab2|Tab3
Gui, Main:Margin, 0, 0
hParent := DllCall("GetWindow", Ptr, hTab, UInt, GW_HWNDNEXT := 2, Ptr)
WinGetPos,,, W, H, ahk_id %hParent%

for k, v in ["FFDDDD", "DDFFDD", "EEEEFF"]  {
   Gui, Tab%k%: Default
   Gui, +Parent%hParent% -Caption +ToolWindow
   Gui, Color, % v
   Gui, Add, Button, vButton%k%, Change Color
   handler := Func("ChangeTabColor").Bind(v)
   GuiControl, +g, Button%k%, % handler
   Gui, Show, Hide x0 y0 w%W% h%H%
}
Gui, Tab1: Show
Gui, Main: Show
Return

MainGuiClose:
   ExitApp

ChangeTabColor(color)  {
   static obj := {}
   Gui, % "Tab" . SubStr(A_GuiControl, 0) . ":Color", % (obj[A_GuiControl] := !obj[A_GuiControl]) ? "White" : color
}

ChangeTab()  {
   global MainTab
   Gui, Tab%MainTab%:Show, Hide
   GuiControlGet, MainTab, Main:
   Gui, Tab%MainTab%:Show, NA
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3 (изменено: inseption86, 2018-08-24 09:18:31)

Re: AHK: GUI, изменение цвета TAb после нажатия button

Спасибо, я, наверное, не правильно задал вопрос, хотелось бы изменение не всей вкладки, а только её верхней части, где номера вкладок.