Hi,
ich wollte euch meine Methode zeigen wie man ganz einfach auf den Bildschirm malen kann mit GDI+. Was man dazu braucht ist eine 1x1 Pixel große .gif Datei mit der Farbe 00FF00 (Rot: 0 , Grün: 255, Blau: 0). Diese Datei benutzen wir als "Green Screen" und schneiden sie später aus unserer GUI. ([Only registered and activated users can see links. Click Here To Register...])
Nun zum Code:
1.) GUI erstellen
Es muss nur eine ganz simple GUI mit einem Bild das über die ganze Fläche der GUI geht erstellt werden. Als Flags nehmen wir $WS_POPUP,$WS_EX_TOPMOST und $WS_EX_LAYERED. Hier kommt unsere gif Datei zum Einsatz die wir als Bild benutzen.
2.) Includes
Für das ausschneiden der Grünen Farbe und das Benutzen der GDI+ benötigen wir folgende zwei Includes die wir an den Anfang unseres Scriptes setzen.
3.) Grün ausschneiden
Hierfür stellt uns die WinApi eine Funktion zur Verfügung die als ersten Parameter das Fenster Handle und als zweiten die Farbe fordert.
$Form1 = Unser GUI Fenster
0x00FF00 = Die Farbe der gif Datei: Grün
4.) Malen
Nun müssen wir nur noch malen ;)
D.h. GDI starten, Graphik initialisieren und unsere gewünschte Form malen.
In diesem Fall malen wir ein Rechteck (Rect) auf unser Fenster.
Opt. [5.) Form löschen (übermalen)]
Wollen wir mehrere Sachen malen würde unser Fenster schnell voll werden also löschen wir bevor wir etwas neues kreieren erstmal das alte mit
Dadurch wird unser GUI Fenster "resettet".
Ich danke Achat für sein Tutorial : [Only registered and activated users can see links. Click Here To Register...] da es mich auf die Idee gebracht hat.
ich wollte euch meine Methode zeigen wie man ganz einfach auf den Bildschirm malen kann mit GDI+. Was man dazu braucht ist eine 1x1 Pixel große .gif Datei mit der Farbe 00FF00 (Rot: 0 , Grün: 255, Blau: 0). Diese Datei benutzen wir als "Green Screen" und schneiden sie später aus unserer GUI. ([Only registered and activated users can see links. Click Here To Register...])
Nun zum Code:
1.) GUI erstellen
Es muss nur eine ganz simple GUI mit einem Bild das über die ganze Fläche der GUI geht erstellt werden. Als Flags nehmen wir $WS_POPUP,$WS_EX_TOPMOST und $WS_EX_LAYERED. Hier kommt unsere gif Datei zum Einsatz die wir als Bild benutzen.
Code:
$Form1 = GUICreate("", 10, 10, 192, 124, [COLOR="Green"]$WS_POPUP,BitOR($WS_EX_LAYERED,$WS_EX_TOPMOST)[/COLOR])
$Pic1 = GUICtrlCreatePic("bg.gif", 0, 0, 10, 10)
GUISetState(@SW_SHOW)
Für das ausschneiden der Grünen Farbe und das Benutzen der GDI+ benötigen wir folgende zwei Includes die wir an den Anfang unseres Scriptes setzen.
Code:
#include <GDIPlus.au3> #include <WinApi.au3>
Hierfür stellt uns die WinApi eine Funktion zur Verfügung die als ersten Parameter das Fenster Handle und als zweiten die Farbe fordert.
Code:
_WinAPI_SetLayeredWindowAttributes($Form1, 0x00FF00)
0x00FF00 = Die Farbe der gif Datei: Grün
Code:
#include <GDIPlus.au3>
#include <WinApi.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("", 10, 10, 192, 124, $WS_POPUP, BitOR($WS_EX_LAYERED,$WS_EX_TOPMOST))
$Pic1 = GUICtrlCreatePic("bg.gif", 0, 0, 10, 10)
_WinAPI_SetLayeredWindowAttributes($Form1, 0x00FF00)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Nun müssen wir nur noch malen ;)
D.h. GDI starten, Graphik initialisieren und unsere gewünschte Form malen.
Code:
_GDIPlus_Startup() $Handle = _GDIPlus_GraphicsCreateFromHWND($Form1) _GDIPlus_GraphicsDrawRect($Handle,0,0,9,9) While 1 Sleep(300) WEnd _GDIPlus_Shutdown()
Code:
_GDIPlus_GraphicsDrawRect($Handle,0,0,9,9)
Code:
#include <GDIPlus.au3>
#include <WinApi.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("", 10, 10, 192, 124, $WS_POPUP, BitOR($WS_EX_LAYERED,$WS_EX_TOPMOST))
$Pic1 = GUICtrlCreatePic("bg.gif", 0, 0, 10, 10)
_WinAPI_SetLayeredWindowAttributes($Form1, 0x00FF00)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
_GDIPlus_Startup()
$Handle = _GDIPlus_GraphicsCreateFromHWND($Form1)
_GDIPlus_GraphicsDrawRect($Handle,0,0,9,9)
While 1
Sleep(300)
WEnd
_GDIPlus_Shutdown()
Wollen wir mehrere Sachen malen würde unser Fenster schnell voll werden also löschen wir bevor wir etwas neues kreieren erstmal das alte mit
Code:
_WinAPI_RedrawWindow($Form1)
Ich danke Achat für sein Tutorial : [Only registered and activated users can see links. Click Here To Register...] da es mich auf die Idee gebracht hat.