Что нового

Иконки для нескольких окон

lexaSF

Новичок
Сообщения
182
Репутация
3
У меня в программе много окон, как установить к каждому окну иконку? к 1 устанавилвается, а ко второму незнаю как)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Код:
#include <GUIConstantsEx.au3>

$sFile = @SystemDir & '\shell32.dll'

$hGui1 = GUICreate('Test1', 200, 200, 10, -1)
GUISetIcon($sFile, 5)
$nButton1 = GUICtrlCreateButton('Gui2', 60, 20, 80, 40)
$nButton2 = GUICtrlCreateButton('Gui3', 60, 80, 80, 40)
$nButton3 = GUICtrlCreateButton('Gui4', 60, 140, 80, 40)

$hGui2 = GUICreate('Gui2', 200, 200, 250, -1)
GUISetIcon($sFile, 10)
$hGui3 = GUICreate('Gui3', 200, 200, 250, -1)
GUISetIcon($sFile, 15)
$hGui4 = GUICreate('Gui4', 200, 200, 250, -1)
GUISetIcon($sFile, 20)

GUISetState(@SW_SHOW, $hGui1)

While 1
	$aMsg = GUIGetMsg(1)
	Switch $aMsg[1]
		Case $hGui1
			Switch $aMsg[0]
				Case $GUI_EVENT_CLOSE
					Exit
				Case $nButton1
					GUISetState(@SW_DISABLE, $hGui1)
					GUISetState(@SW_SHOW, $hGui2)
				Case $nButton2
					GUISetState(@SW_DISABLE, $hGui1)
					GUISetState(@SW_SHOW, $hGui3)
				Case $nButton3
					GUISetState(@SW_DISABLE, $hGui1)
					GUISetState(@SW_SHOW, $hGui4)
			EndSwitch
		Case $hGui2
			Switch $aMsg[0]
				Case $GUI_EVENT_CLOSE
					GUISetState(@SW_ENABLE, $hGui1)
					GUISetState(@SW_HIDE, $hGui2)
			EndSwitch
		Case $hGui3
			Switch $aMsg[0]
				Case $GUI_EVENT_CLOSE
					GUISetState(@SW_ENABLE, $hGui1)
					GUISetState(@SW_HIDE, $hGui3)
			EndSwitch
		Case $hGui4
			Switch $aMsg[0]
				Case $GUI_EVENT_CLOSE
					GUISetState(@SW_ENABLE, $hGui1)
					GUISetState(@SW_HIDE, $hGui4)
			EndSwitch
	EndSwitch
WEnd
 
Автор
L

lexaSF

Новичок
Сообщения
182
Репутация
3
нет, а как вообще сделать чтобы были не системные иконки
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
lexaSF,
Вы в который раз задаете вопрос, который понятен только Вам. Какая разница, системные они или нет. Поменяйте
Код:
;...
$sFile = @SystemDir & '\shell32.dll'
;например, на
$sFile_1 = @ScriptDir & '\1_MyIcon.ico'
$sFile_2 = @ScriptDir & '\2_MyIcon.ico'
$sFile_3 = @ScriptDir & '\3_MyIcon.ico'
$sFile_4 = @ScriptDir & '\4_MyIcon.ico'
;и для каждого окна
GUISetIcon($sFile, 5)
;на
GUISetIcon($sFile_1) ; и так далее...
 

kzru_hunter

Осваивающий
Сообщения
144
Репутация
49
В 3-м параметре функции GuiSetIcon нужно указать хэндл окна.
 
Верх