GUICtrlCreatePic
Создаёт рисунок в GUI.
GUICtrlCreatePic ( filename, left, top [, width [, height [, style = -1 [, exStyle = -1 ]]]] )
Параметры
filename | Путь к рисунку : поддерживаются форматы BMP, JPG, GIF(без анимации). |
left |
Координата левого края. Если -1 - тогда координата в соответствии с GUICoordMode. |
top |
Координата верхнего края. Если -1 - тогда координата в соответствии с GUICoordMode. |
width |
[необязательный] Ширина элемента (по умолчанию предыдущее значение). |
height |
[необязательный] Высота элемента (по умолчанию предыдущее значение). |
style |
[необязательный] Стиль элемента. Смотрите Стили элементов GUI в приложении. -1 - по умолчанию : $SS_NOTIFY принудительный стиль : $SS_BITMAP |
exStyle |
[необязательный] Расширенный стиль элемента. Смотрите таблицу расширенных стилей. |
Возвращаемое значение
Успех: | Возвращает идентификатор (controlID) нового элемента. |
Ошибка: | Возвращает 0, если рисунок не может быть создан. |
Примечания
Чтобы установить или изменить параметры элемента смотрите GUICtrlUpdate....См. также
GUICoordMode (Опция), GUICtrlSetImage, GUICtrlUpdate..., GUIGetMsgПример
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Global $gui, $guiPos, $pic, $picPos
Example1()
Example2()
;----- Пример 1 ----
Func Example1()
Local $n, $msg
GUICreate("GUI с рисунком", 350, 300, -1, -1, $WS_SIZEBOX + $WS_SYSMENU) ; Создаёт окно в центре экрана
GUISetBkColor(0xE0FFFF)
$n = GUICtrlCreatePic(@ScriptDir & "\..\GUI\mslogo.jpg", 50, 50, 200, 50)
GUISetState()
; Запускается цикл опроса GUI до тех пор пока окно не будет закрыто
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
; Изменяет размер элемента
$n = GUICtrlSetPos($n, 50, 50, 200, 100)
; Запускается цикл опроса GUI до тех пор пока окно не будет закрыто
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
GUIDelete()
EndFunc
;----- Пример 2
Func Example2()
Local $msg
$gui = GUICreate("Прозрачный", 200, 100)
$pic = GUICreate("", 68, 71, 10, 20, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $gui)
GUICtrlCreatePic(@ScriptDir & "\..\GUI\merlin.gif", 0, 0, 0, 0)
GUISetState(@SW_SHOW, $pic)
GUISetState(@SW_SHOW, $gui)
HotKeySet("{ESC}", "Main")
HotKeySet("{Left}", "Left")
HotKeySet("{Right}", "Right")
HotKeySet("{Down}", "Down")
HotKeySet("{Up}", "Up")
$picPos = WinGetPos($pic)
$guiPos = WinGetPos($gui)
Do
$msg = GUIGetMsg()
Until $msg = $GUI_EVENT_CLOSE
HotKeySet("{ESC}")
HotKeySet("{Left}")
HotKeySet("{Right}")
HotKeySet("{Down}")
HotKeySet("{Up}")
EndFunc
Func Main()
$guiPos = WinGetPos($gui)
WinMove($gui, "", $guiPos[0] + 10, $guiPos[1] + 10)
EndFunc
Func Left()
$picPos = WinGetPos($pic)
WinMove($pic, "", $picPos[0] - 10, $picPos[1])
EndFunc
Func Right()
$picPos = WinGetPos($pic)
WinMove($pic, "", $picPos[0] + 10, $picPos[1])
EndFunc
Func Down()
$picPos = WinGetPos($pic)
WinMove($pic, "", $picPos[0], $picPos[1] + 10)
EndFunc
Func Up()
$picPos = WinGetPos($pic)
WinMove($pic, "", $picPos[0], $picPos[1] - 10)
EndFunc
;----- Пример 3, PNG, работа цикла от Zedna
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#include <WinAPI.au3>
Global $hGUI, $hImage, $hGraphic, $hImage1
; Создаёт GUI
$hGUI = GUICreate("PNG", 250, 250)
; Загружает рисунок PNG
_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\..\GUI\Torus.png")
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT")
GUISetState()
; Цикл ожидающий выхода
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
; Очищает от ресурсов
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
; Рисует рисунок PNG
Func MY_WM_PAINT($hWnd, $msg, $wParam, $lParam)
#forceref $hWnd, $Msg, $wParam, $lParam
_WinAPI_RedrawWindow($hGUI, 0, 0, $RDW_UPDATENOW)
_GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 0, 0)
_WinAPI_RedrawWindow($hGUI, 0, 0, $RDW_VALIDATE)
Return $GUI_RUNDEFMSG
EndFunc