Незадача у меня такая возникла,даже не знаю как грамотно описать её. Вообщем, есть три кнопки: на первой текст Start, на второй текст Hide, а на третьей - любая иконка из shell32.dll. При нажатии на вторую кнопку Hide, её текст должен измениться на Hidden, а вместо иконки на третьей кнопке должен появиться текст Show. Теперь,при нажатии на третью кнопку Show, её текст пусть изменится на любую иконку из shell32.dll и слово Hi, а текст второй кнопки снова станет Hide. И так каждый раз при нажатии на кнопки. Вообщем, не получается у меня заменить иконку на третьей кнопке на текст. Полистал форум, нашёл шикарный пример с _GUICtrlButton_SetImageList , но, к сожалению, не понял как он работает и тем более как вписать его в свой код.
Вот код:
Если удалить стиль $BS_ICON , то я добиваюсь нужного мне эффекта, но при запуске скрипта получаю пустую кнопку.
Вот код:
Код:
#include <WinAPIGdi.au3>
#include <Misc.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
Global $Paused, $hGui, $Button1, $Button2, $Button3, $hWnd, $hControl, $fTrigger = False
Opt("GUIOnEventMode", 1) ; Включает режим OnEvent
$hGui = GUICreate(" ", 50, 93, -1, -1, $WS_POPUPWINDOW)
GUISetBkColor(0x88AABB)
$Button1 = GUICtrlCreateButton("Start", 5, 5, 40, 20)
GUICtrlSetOnEvent(-1, '_Button1')
$Button2 = GUICtrlCreateButton("Hide", 5, 26, 40, 20)
GUICtrlSetOnEvent(-1, '_Button2')
$Button3 = GUICtrlCreateButton("", 5, 47, 40, 20, $BS_ICON )
GUICtrlSetImage(-1, @SystemDir & '\shell32.dll', 42, 0)
GUICtrlSetOnEvent($Button3, '_Button3')
GUICtrlCreatePic(@ScriptDir & '\msoobe.jpg', 5, 68, 40, 20, -1, $GUI_WS_EX_PARENTDRAG)
GUISetState(@SW_SHOW)
;-------------------------------
Func _Button1() ; основное тело скрипта
GUICtrlSetData($Button1, 'Run')
TrayTip("Запуск программы", "Программа работает", 5, 1)
EndFunc ;==>_Button1
;-------------------------------
Func _Button3()
TrayTip("Return the Window", "Icon change", 5, 1)
GUICtrlSetData($Button2, 'Hide')
GUICtrlSetData($Button3, 'Hi')
;Sleep (5000)
GUICtrlSetImage($Button3, @SystemDir & '\shell32.dll', 167, 0)
EndFunc ;==>_Button3
;-------------------------------
Func _Button2()
TrayTip("Прячем программу", "Замена иконки", 5, 1)
GUICtrlSetData($Button2, 'Hidden')
GUICtrlSetImage($Button3, @SystemDir & '\shell32.dll', 239, 0)
GUICtrlSetData($Button3, 'Show')
EndFunc ;==>_Button2
Если удалить стиль $BS_ICON , то я добиваюсь нужного мне эффекта, но при запуске скрипта получаю пустую кнопку.