Что нового

_GDIPlus_GraphicsDrawImage Как удалить / записать новую PNG картинку

gergerger111

Новичок
Сообщения
17
Репутация
0
Использую библиотеку GDIPlus.au3, вывожу PNG картинку
Далее при нажатии на кнопку (допустим 2 ) Картинка меняется на другую (изначально хотел так сделать)
После долгих попыток решил пусть будет на кнопку 1) Удаление первой картинки и отрисовка второй (не вышло)

В идеале хочу что бы 1ая картинка удалялась нажав на 1 кнопку и на её место рисовалась вторая картинка PNG формата.

Код:
#include <GDIPlus.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <SliderConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 757, 562, 467, 182)
$Button1 = GUICtrlCreateButton("1", 256, 392, 75, 41)
$Button2 = GUICtrlCreateButton("2", 76, 392, 75, 41)
$Button3 = GUICtrlCreateButton("3", 536, 392, 75, 41)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Global $i = 0
Global $hImage, $hGraphic, $ris

_GDIPlus_StartUp()
$hImage   = _GDIPlus_ImageLoadFromFile("........PNG114.png")
;~ ; Draw PNG image
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($Form1)
$ris = _GDIPlus_GraphicsDrawImage($hGraphic, $hImage, $i, 0)
_GDIPlus_ShutDown()

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

		Case $Button2
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_ImageDispose($hImage)
		   GUIDelete ($hImage)
			GUIDelete ($hGraphic)

		 Case $Button1
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_ImageDispose($hImage)
			$i = $i + 1
_GDIPlus_StartUp()
$hImage   = _GDIPlus_ImageLoadFromFile("..........PNG111.png")
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($Form1)
$ris = _GDIPlus_GraphicsDrawImage($hGraphic, $hImage, $i+100, 0)
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_ShutDown()
EndIf
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_ShutDown()

	EndSwitch
WEnd
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Код:
#include <GDIPlus.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <SliderConstants.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 757, 562, 467, 182)
$Button1 = GUICtrlCreateButton("1", 256, 392, 75, 41)
$Button2 = GUICtrlCreateButton("2", 76, 392, 75, 41)
$Button3 = GUICtrlCreateButton("3", 536, 392, 75, 41)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

Global $i = 0, $hImage, $hGraphic

_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile("PNG114.png")
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($Form1)
_GDIPlus_GraphicsDrawImage($hGraphic, $hImage, $i, 0)
_GDIPlus_ImageDispose($hImage)

$hImage = _GDIPlus_ImageLoadFromFile("PNG111.png")

While 1
  Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
      ExitLoop

    Case $Button2

    Case $Button1
      $i += 1
      _WinAPI_RedrawWindow($Form1)
      _GDIPlus_GraphicsDrawImage($hGraphic, $hImage, $i + 100, 0)
  EndSwitch
WEnd

_GDIPlus_ImageDispose($hImage)
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_Shutdown()
 
Автор
G

gergerger111

Новичок
Сообщения
17
Репутация
0
Спасибо.
Не знал про эту функцию _WinAPI_RedrawWindow.
 
Верх