Старожил
Сообщения: 265
Благодарности: 126
|
Профиль
|
Отправить PM
| Цитировать
Vsirf, вот, только у меня при активности кнопки картинка исчезает.
читать дальше »
Код: 
#include <GDIPlus.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiButton.au3>
#include <GuiImageList.au3>
$Gui=GUICreate('пример', 300, 220, -1, -1, BitOr($WS_BORDER, $WS_POPUP, $WS_SYSMENU))
; GUICreate('пример', 300, 220)
; =====================================
$hImage1 = _GUIImageList_Create(16, 16, 5, 3)
_GUIImageList_AddIcon($hImage1, "shell32.dll", 27)
_GUIImageList_AddIcon($hImage1, "shell32.dll", 112)
_GUIImageList_AddIcon($hImage1, "shell32.dll", 25)
$Button = GUICtrlCreateButton("", 300-27, 2, 25, 25)
_GUICtrlButton_SetImageList(-1, $hImage1, 1, 4)
; =====================================
$hImageList = _GUIImageList_Create(66, 91, 5)
_GDIPlus_Startup()
_Image(@ScriptDir & '\Image1.png')
_Image(@ScriptDir & '\Image2.png')
_Image(@ScriptDir & '\Image3.png')
_GDIPlus_Shutdown()
; =====================================
$Button1 = GUICtrlCreateButton("", 10, 50, 80, 100)
_GUICtrlButton_SetImageList(-1, $hImageList, 1)
GUISetState()
While 1
Switch GUIGetMsg()
Case $Button1
MsgBox(0, 'Сообщение', 'е')
Case $GUI_EVENT_CLOSE, $Button
ExitLoop
EndSwitch
WEnd
Func _Image($Path)
$h_Image = _GDIPlus_BitmapCreateFromFile($Path)
$h_Bitmap =_GDIPlus_BitmapCreateHBITMAPFromBitmap($h_Image)
_GUIImageList_Add($hImageList, $h_Bitmap)
_GDIPlus_ImageDispose($h_Image)
_WinAPI_DeleteObject($h_Bitmap)
EndFunc
читать дальше »
Код: 
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiButton.au3>
$Gui=GUICreate("Тест", 300, 220, -1, -1, BitOr($WS_BORDER, $WS_POPUP, $WS_SYSMENU))
$btn1 = GUICtrlCreateButton("", 300-23, 2, 21, 21, $BS_ICON)
GUICtrlSetImage($btn1, "shell32.dll", -28, 0)
$btn2 = GUICtrlCreateButton("", 115, 66, 40, 40, $BS_ICON)
GUICtrlSetImage($btn2, "shell32.dll", -162)
GUISetState()
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
While 1
Switch GUIGetMsg()
Case $btn2
MsgBox(0, 'Сообщение', 'е')
Case $GUI_EVENT_CLOSE, $btn1
ExitLoop
EndSwitch
WEnd
Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)
#forceref $hWnd, $Msg, $wParam
Local Const $BCN_HOTITEMCHANGE = -1249
Local $tNMBHOTITEM = DllStructCreate("hwnd hWndFrom;int IDFrom;int Code;dword dwFlags", $lParam)
Local $nNotifyCode = DllStructGetData($tNMBHOTITEM, "Code")
Local $nID = DllStructGetData($tNMBHOTITEM, "IDFrom")
Local $hCtrl = DllStructGetData($tNMBHOTITEM, "hWndFrom")
Local $dwFlags = DllStructGetData($tNMBHOTITEM, "dwFlags")
Switch $nNotifyCode
Case $BCN_HOTITEMCHANGE ; Win XP and Above
If BitAND($dwFlags, 0x10) = 0x10 Then
Switch $nID
Case $btn1
GUICtrlSetImage($btn1, "shell32.dll", -113, 0)
Case $btn2
GUICtrlSetImage($btn2, "shell32.dll", -195)
EndSwitch
ElseIf BitAND($dwFlags, 0x20) = 0x20 Then
Switch $nID
Case $btn1
GUICtrlSetImage($btn1, "shell32.dll", -28, 0)
Case $btn2
GUICtrlSetImage($btn2, "shell32.dll", -162)
EndSwitch
EndIf
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc
|