Цитата:
Цитата assch
этот пример был в теме "Как раздвинуть окно" »
|
Если в этой теме нет решения, то кому она будет полезна, да ещё и с пометкой [решено]?
Вот решение:
Код:
#include <GUIConstantsEx.au3>
#include <GUIButton.au3>
#include <GUIImageList.au3>
Global $hImageList = _GUIImageList_Create(16, 16, 5, 1)
$hGUI = GUICreate("_GUICtrlButton_SetImageEx Example", 350, 200)
$nButton = GUICtrlCreateButton("Ok", 20, 170, 80, 22, $BS_ICON)
_GUICtrlButton_SetImageEx($hImageList, $nButton, @SystemDir & "\rasdlg.dll", 1)
GUISetState()
While 1
$Msg = GUIGetMsg()
Switch $Msg
Case $GUI_EVENT_CLOSE
_GUIImageList_Destroy($hImageList)
Exit
Case $nButton
If GUICtrlRead($nButton) = "Ok" Then
GUICtrlSetData($nButton, "Cancel")
_GUICtrlButton_SetImageEx($hImageList, $nButton, @SystemDir & "\rasdlg.dll", 0)
Else
GUICtrlSetData($nButton, "Ok")
_GUICtrlButton_SetImageEx($hImageList, $nButton, @SystemDir & "\rasdlg.dll", 1)
EndIf
_WinAPI_RedrawWindow($hGUI)
EndSwitch
WEnd
Func _GUICtrlButton_SetImageEx($hImageList, $nCtrl, $sIconFile, $nIconID=0, $nAlign=-1)
If _GUIImageList_GetImageCount($hImageList) > 0 Then
$tIcon = DllStructCreate("int Icon")
_WinAPI_ExtractIconEx($sIconFile, $nIconID, 0, DllStructGetPtr($tIcon), 1)
$hIcon = DllStructGetData($tIcon, "Icon")
_GUIImageList_ReplaceIcon($hImageList, 0, $hIcon)
_WinAPI_DestroyIcon($hIcon)
Else
_GUIImageList_AddIcon($hImageList, $sIconFile, $nIconID)
EndIf
Return _GUICtrlButton_SetImageList($nCtrl, $hImageList, $nAlign)
EndFunc
|