Hallo,
kann man mit der GDI Plus auch karos wie auf dem Karopapier Malen?
Lg Pceumel
Hallo,
kann man mit der GDI Plus auch karos wie auf dem Karopapier Malen?
Lg Pceumel
Klar wieso nicht.
und wie lautet der code?
Hi pceumel,
Zwei Dinge:
Erstens: Deine Mailadresse für Benachrichtigungen vom Forum ist offenbar falsch, ich kriege die ganze Zeit die Bounces rein, das nervt. Bitte korrigiere die Adresse in deinen Einstellungen.
Zweitens zur Frage: Bringt es dir irgendetwas, wenn wir dir das machen? Versuch doch bitte auch was selbst! Sonst lernst du doch nichts...
peethebee
Hallo,
wie würdest du denn ein Karopapier "von Hand" mit einem Bleistift auf ein weißes Blatt malen?
GENAU so würde ichs mit gdi+ machen......
ciao
Andy
Ich habe Dir mal ein Beispiel erstellt:
#include <GDIPlus.au3>
#include <WindowsConstants.au3>
_GDIPlus_Startup()
$hGUI = GUICreate('GDI+', 400, 400)
GUISetState()
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
$hBitmap = _GDIPlus_BitmapCreateFromGraphics(400, 400, $hGraphic)
$hGraphicBuff = _GDIPlus_ImageGetGraphicsContext($hBitmap)
For $y = 0 To 39
For $x = 0 To 39
_GDIPlus_GraphicsDrawRect($hGraphicBuff, $x * 10, $y * 10, 10, 10)
Next
Next
_GDIPlus_GraphicsDrawImage($hGraphic, $hBitmap, 0, 0)
GUIRegisterMsg($WM_PAINT, 'WM_PAINT')
Do
Until GUIGetMsg() = -3
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_Shutdown()
Func WM_PAINT($hWnd, $Msg, $wParam, $lParam)
_GDIPlus_GraphicsDrawImage($hGraphic, $hBitmap, 0, 0)
EndFunc ;==>WM_PAINT
@pee: Das zeichnen mit GDI+ ist nicht ganz ohne, weil man einen zusätzlichen Bitmap-"Buffer" verwenden muss (Danke nochmal an progandy ).
@ oscar
Hilfe bemüht und for/to Schleife "ergänzt". Deins ist ein bissl "eleganter", aber meins dafür "wie von Hand gemalt"^^
#include <GuiConstantsEx.au3>
#include <GDIPlus.au3>
Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit]_Main()
[/autoit] [autoit][/autoit] [autoit]Func _Main()
Local $hGUI, $hWnd, $hGraphic, $hPen
; Create GUI
$hGUI = GUICreate("GDI+", 400, 400)
$hWnd = WinGetHandle("GDI+")
GUISetState()
; Draw line
_GDIPlus_Startup ()
$hGraphic = _GDIPlus_GraphicsCreateFromHWND ($hWnd)
$hPen = _GDIPlus_PenCreate ()
for $x=0 to 400 Step 20
_GDIPlus_GraphicsDrawLine ($hGraphic, $x, 0, $x, 400, $hPen)
Next
For $y=0 to 400 Step 20
_GDIPlus_GraphicsDrawLine ($hGraphic, 0, $y, 400, $y, $hPen)
next
; Loop until user exits
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
; Clean up resources
_GDIPlus_PenDispose ($hPen)
_GDIPlus_GraphicsDispose ($hGraphic)
_GDIPlus_Shutdown ()
EndFunc ;==>_Main
[/autoit]Ach nee, das mit dem "Buffer" war ja nur zum speichern. Oh mann, ich werde alt...
Andy: Bei Dir fehlt die WM_PAINT-Funktion. Sonst wird die Graphic nicht neu gezeichnet, wenn das Fenster von einem anderen Fenster verdeckt und dann wieder sichtbar wird.
ZitatAndy: Bei Dir fehlt die WM_PAINT-Funktion. Sonst wird die Graphic nicht neu gezeichnet, wenn das Fenster von einem anderen Fenster verdeckt und dann wieder sichtbar wird.
*flüstermodeON*
psssstttt...das kommt doch erst im nächsten Semester dran
*flüstermodeOFF*