Viktor1703
AutoIT Гуру
- Сообщения
- 1,535
- Репутация
- 413
Сколько не пытался, ни как не получается создать контрол Pic и установить на него картинку.
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <WinAPIEx.au3>
#Include <GDIPlus.au3>
Global $ArrayCID
$hForm = GUICreate("", 550, 300)
InitializeSkin()
GUICtrlCreateButton("Hello", 20, 20, 80, 20)
GUICtrlCreateButton("Hello", 20, 50, 80, 20)
GUICtrlCreateButton("Hello", 20, 80, 80, 20)
GUIctrlCreateInput("", 20, 110, 80, 20)
GUIctrlCreateInput("", 20, 140, 80, 20)
GUIctrlCreateInput("", 20, 170, 80, 20)
GUIctrlCreateInput("", 20, 200, 80, 20)
GUISetState()
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func InitializeSkin()
GUIRegisterMsg(0x000F, "WM_PAINT")
EndFunc
Func WM_PAINT($hWnd, $iMsg, $wParam, $lParam)
If WinExists($hWnd) Then
Local $iCHWnd = _WinAPI_EnumChildWindows($hWnd, 0)
For $i = 1 To UBound($iCHWnd) -1
Global $ArrayCID[$i][7]
Next
For $i = 1 To UBound($iCHWnd) -1
Local $iID = _WinAPI_GetDlgCtrlID($iCHWnd[$i][0])
Local $iCoord = ControlGetPos($hWnd, "", $iID)
$ArrayCID[$i - 1][0] = $iID
$ArrayCID[$i - 1][1] = GUICtrlGetHandle($iID)
$ArrayCID[$i - 1][2] = GUICtrlRead($iID)
$ArrayCID[$i - 1][3] = $iCoord[0]
$ArrayCID[$i - 1][4] = $iCoord[1]
$ArrayCID[$i - 1][5] = $iCoord[2]
$ArrayCID[$i - 1][6] = $iCoord[3]
Next
EndIf
__ISKIN_Button($hWnd, $ArrayCID)
Return 'GUI_RUNDEFMSG'
EndFunc
Func __ISKIN_Button($hWnd, $Array)
Local $__ISKIN_Button
For $i = 0 To UBound($Array) -1
If _WinAPI_GetClassName($Array[$i][0]) = "Button" Then
GUICtrlDelete($Array[$i][0])
$__ISKIN_Button = _WinAPI_CreateWindowEx(0, "Static", "", BitOR($WS_CHILD, $WS_VISIBLE, 0xE, $WS_DISABLED), $Array[$i][3], $Array[$i][4], $Array[$i][5], $Array[$i][6], $hWnd, $Array[$i][0], 0, 0)
UsePNGImage($__ISKIN_Button, @ScriptDir & "\OFF.png")
EndIf
Next
EndFunc
Func UsePNGImage($iPic, $sPNGFile)
_GDIPlus_Startup()
Local $hImage = _GDIPlus_ImageLoadFromFile($sPNGFile)
Local $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
_WinAPI_PostMessage($iPic, 0x172, 0, $hBitmap)
_WinAPI_DeleteObject($hBitmap)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
EndFunc