Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для AZJIO

Старожил


Сообщения: 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

Последний раз редактировалось AZJIO, 24-02-2012 в 15:30.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:07, 24-02-2012 | #3