Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <GDIPlus.au3>
- #include <GDIPlusConstants.au3>
- #include <Misc.au3>
- HotKeySet("{F4}", "copy")
- Opt("GUIOnEventMode", 1)
- Opt("MouseCoordMode", 2)
- Global $MainGUI[10], $CodeGUI[10], $CtrlGUI[10], $Code[10]
- Global $GDIPForm = "", $Direction[2]
- Global $Line[100][4], $Elli[100][4], $Rect[100][4]
- $w = InputBox("GDI+ Coda", "Wie breit soll die GUI werden?", "300")
- $h = InputBox("GDI+ Coda", "Wie hoch soll die GUI werden?", "300")
- $MainGUI[0] = GUICreate("GDI+ Coda Zeichenfenster", $w, $h, -1, 150)
- GUISetOnEvent(-3, "_Exit")
- GUISetCursor(16)
- GUISetState()
- _GDIPlus_Startup()
- $MainGUI[1] = _GDIPlus_GraphicsCreateFromHWND($MainGUI[0])
- $MainGUI[2] = _GDIPlus_BitmapCreateFromGraphics($w, $h, $MainGUI[1])
- $MainGUI[3] = _GDIPlus_ImageGetGraphicsContext($MainGUI[2])
- $CtrlGUI[0] = GUICreate("GDI+ Coda Toolbar", 290-5, 125, 5, 0, 0, 0x00000080, $MainGUI[0])
- $CtrlGUI[1] = GUICtrlCreateButton("None", 10, 10, 50, 50)
- GUICtrlSetOnEvent(-1, "_ChangeForm")
- $CtrlGUI[2] = GUICtrlCreateButton("Linie", 70, 10, 50, 50)
- GUICtrlSetOnEvent(-1, "_ChangeForm")
- $CtrlGUI[3] = GUICtrlCreateButton("Ellipse", 130, 10, 50, 50)
- GUICtrlSetOnEvent(-1, "_ChangeForm")
- $CtrlGUI[4] = GUICtrlCreateButton("Recht.", 190, 10, 50, 50)
- GUICtrlSetOnEvent(-1, "_ChangeForm")
- GUISetState()
- $CodeGUI[0] = GUICreate("GDI+ Coda CodeOutput - Drücke F4 zum Kopieren des Codes in die Zwischenablage", @DesktopWidth-290-5-5-5, 120, 295, 0, 0x00040000, 0x00000080, $MainGUI[0])
- $CodeGUI[1] = GUICtrlCreateEdit($Code[0], 0, 0, @DesktopWidth-290-5-5-5-2, 120)
- GUICtrlSetFont(-1, 9.5, 400, 0, "Courier New")
- GUICtrlSetResizing(-1, 102)
- GUISetState()
- While 1
- Sleep(10)
- _Update()
- If WinActive($MainGUI[0]) And $GDIPForm And _IsPressed(01) Then _NewForm()
- WEnd
- Func copy()
- ClipPut(guictrlread($CodeGUI[1]))
- EndFunc
- Func _Update()
- Local $MousePos = MouseGetPos()
- _GDIPlus_GraphicsClear($MainGUI[3], 0xFFFFFFFF)
- If WinActive($MainGUI[0]) Then
- _GDIPlus_GraphicsDrawLine($MainGUI[3], $MousePos[0] - 3, $MousePos[1], $MousePos[0] + 3, $MousePos[1])
- _GDIPlus_GraphicsDrawLine($MainGUI[3], $MousePos[0], $MousePos[1] - 3, $MousePos[0], $MousePos[1] + 3)
- EndIf
- If Not $Line[0][0] = 0 Then
- For $i = 1 To $Line[0][0]
- _GDIPlus_GraphicsDrawLine($MainGUI[3], $Line[$i][0], $Line[$i][1], $Line[$i][2], $Line[$i][3])
- Next
- EndIf
- If Not $Elli[0][0] = 0 Then
- For $i = 1 To $Elli[0][0]
- _GDIPlus_GraphicsDrawEllipse($MainGUI[3], $Elli[$i][0], $Elli[$i][1], $Elli[$i][2] - $Elli[$i][0], $Elli[$i][3] - $Elli[$i][1])
- Next
- EndIf
- If Not $Rect[0][0] = 0 Then
- For $i = 1 To $Rect[0][0]
- _GDIPlus_GraphicsDrawRect($MainGUI[3], $Rect[$i][0], $Rect[$i][1], $Rect[$i][2] - $Rect[$i][0], $Rect[$i][3] - $Rect[$i][1])
- Next
- EndIf
- _GDIPlus_GraphicsDrawImageRect($MainGUI[1], $MainGUI[2], 0, 0, $w, $h)
- EndFunc ;==>_Update
- Func _Exit()
- _GDIPlus_GraphicsDispose($MainGUI[3])
- _GDIPlus_BitmapDispose($MainGUI[2])
- _GDIPlus_GraphicsDispose($MainGUI[1])
- _GDIPlus_Shutdown()
- GUIDelete($MainGUI[0])
- Exit
- EndFunc ;==>_Exit
- Func _NewForm()
- Local $MousePos = MouseGetPos()
- If $GDIPForm = 1 Then
- $Line[0][0] += 1
- $Line[$Line[0][0]][0] = $MousePos[0]
- $Line[$Line[0][0]][1] = $MousePos[1]
- While _IsPressed(01)
- $MousePos = MouseGetPos()
- $Line[$Line[0][0]][2] = $MousePos[0]
- $Line[$Line[0][0]][3] = $MousePos[1]
- _Update()
- Sleep(10)
- WEnd
- If $Line[$Line[0][0]][0] = $Line[$Line[0][0]][2] And $Line[$Line[0][0]][1] = $Line[$Line[0][0]][3] Then $Line[0][0] -= 1
- ElseIf $GDIPForm = 2 Then
- $Elli[0][0] += 1
- $Elli[$Elli[0][0]][0] = $MousePos[0]
- $Elli[$Elli[0][0]][1] = $MousePos[1]
- While _IsPressed(01)
- $MousePos = MouseGetPos()
- $Elli[$Elli[0][0]][2] = $MousePos[0]
- $Elli[$Elli[0][0]][3] = $MousePos[1]
- _Update()
- Sleep(10)
- WEnd
- If $Elli[$Elli[0][0]][0] = $Elli[$Elli[0][0]][2] And $Elli[$Elli[0][0]][1] = $Elli[$Elli[0][0]][3] Then $Elli[0][0] -= 1
- $Direction[0] = 0
- $Direction[1] = 0
- ElseIf $GDIPForm = 3 Then
- $Rect[0][0] += 1
- $Rect[$Rect[0][0]][0] = $MousePos[0]
- $Rect[$Rect[0][0]][1] = $MousePos[1]
- While _IsPressed(01)
- $MousePos = MouseGetPos()
- If $Rect[$Rect[0][0]][0] > $MousePos[0] Or $Direction[0] = 1 Then
- If Not $Direction[0] Then
- $Rect[$Rect[0][0]][2] = $Rect[$Rect[0][0]][0]
- $Rect[$Rect[0][0]][0] = $MousePos[0]
- $Direction[0] = 1
- ElseIf $Rect[$Rect[0][0]][0] < $MousePos[0] Then
- $Rect[$Rect[0][0]][0] = $Rect[$Rect[0][0]][2]
- $Rect[$Rect[0][0]][2] = $MousePos[0]
- $Direction[0] = 0
- Else
- $Rect[$Rect[0][0]][0] = $MousePos[0]
- EndIf
- Else
- $Rect[$Rect[0][0]][2] = $MousePos[0]
- EndIf
- If $Rect[$Rect[0][0]][1] > $MousePos[1] Or $Direction[1] = 1 Then
- If Not $Direction[1] Then
- $Rect[$Rect[0][0]][3] = $Rect[$Rect[0][0]][1]
- $Rect[$Rect[0][0]][1] = $MousePos[1]
- $Direction[1] = 1
- ElseIf $Rect[$Rect[0][0]][1] < $MousePos[1] Then
- $Rect[$Rect[0][0]][1] = $Rect[$Rect[0][0]][3]
- $Rect[$Rect[0][0]][3] = $MousePos[1]
- $Direction[1] = 0
- Else
- $Rect[$Rect[0][0]][1] = $MousePos[1]
- EndIf
- Else
- $Rect[$Rect[0][0]][3] = $MousePos[1]
- EndIf
- _Update()
- Sleep(10)
- WEnd
- If $Rect[$Rect[0][0]][0] = $Rect[$Rect[0][0]][2] And $Rect[$Rect[0][0]][1] = $Rect[$Rect[0][0]][3] Then $Rect[0][0] -= 1
- $Direction[0] = 0
- $Direction[1] = 0
- EndIf
- _UpdateCode()
- EndFunc ;==>_NewForm
- Func _ChangeForm()
- If @GUI_CtrlId = $CtrlGUI[1] Then $GDIPForm = 0
- If @GUI_CtrlId = $CtrlGUI[2] Then $GDIPForm = 1
- If @GUI_CtrlId = $CtrlGUI[3] Then $GDIPForm = 2
- If @GUI_CtrlId = $CtrlGUI[4] Then $GDIPForm = 3
- EndFunc ;==>_ChangeForm
- Func _UpdateCode()
- $Code[0] = ";Created by GDI+ Coda" & @CRLF & _
- "#include <GDIPlus.au3>" & @CRLF & _
- "#include <GDIPlusConstants.au3>" & @CRLF & _
- @CRLF & _
- 'Opt("GUIOnEventMode", 1)' & @CRLF & _
- @CRLF & _
- "Global $hWnd, $hGraphic, $hBitmap, $backbuffer" & @CRLF & _
- 'Global $title = "GDICoda Form", _' & @CRLF & _
- " $width = 300, _ " & @CRLF & _
- " $height = 300" & @CRLF & _
- @CRLF & _
- "_Startup()" & @CRLF & _
- @CRLF
- $Code[1] = "While 1" & @CRLF & _
- " Sleep(100)" & @CRLF & _
- " _Update()" & @CRLF & _
- "WEnd" & @CRLF & _
- @CRLF
- $Code[2] = "Func _Startup()" & @CRLF & _
- " $hWnd = GUICreate($title, $width, $height, -1, -1)" & @CRLF & _
- ' GUISetOnEvent(-3, "_Shutdown")' & @CRLF & _
- " GUISetState()" & @CRLF & _
- @CRLF & _
- " _GDIPlus_Startup()" & @CRLF & _
- " $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)" & @CRLF & _
- " $hBitmap = _GDIPlus_BitmapCreateFromGraphics($width, $height, $hGraphic)" & @CRLF & _
- " $backbuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)" & @CRLF & _
- "EndFunc" & @CRLF & _
- @CRLF
- $Code[3] = "Func _Shutdown()" & @CRLF & _
- " _GDIPlus_GraphicsDispose($backbuffer)" & @CRLF & _
- " _GDIPlus_BitmapDispose($hBitmap)" & @CRLF & _
- " _GDIPlus_GraphicsDispose($hGraphic)" & @CRLF & _
- " _GDIPlus_Shutdown()" & @CRLF & _
- " GUIDelete($hWnd)" & @CRLF & _
- " Exit" & @CRLF & _
- "EndFunc" & @CRLF & _
- @CRLF
- $Code[4] = "Func _Update()" & @CRLF & _
- " _GDIPlus_GraphicsClear($backbuffer, 0xFFFFFFFF)" & @CRLF
- For $i = 1 To $Line[0][0]
- $Code[4] &= @TAB & "_GDIPlus_GraphicsDrawLine($backbuffer, " & $Line[$i][0] & ", " & $Line[$i][1] & ", " & $Line[$i][2] & ", " & $Line[$i][3] & ")" & @CRLF
- Next
- For $i = 1 To $Elli[0][0]
- $Code[4] &= @TAB & "_GDIPlus_GraphicsDrawEllipse($backbuffer, " & $Elli[$i][0] & ", " & $Elli[$i][1] & ", " & $Elli[$i][2] - $Elli[$i][0] & ", " & $Elli[$i][3] - $Elli[$i][1] & ")" & @CRLF
- Next
- For $i = 1 To $Rect[0][0]
- $Code[4] &= @TAB & "_GDIPlus_GraphicsDrawRect($backbuffer, " & $Rect[$i][0] & ", " & $Rect[$i][1] & ", " & $Rect[$i][2] - $Rect[$i][0] & ", " & $Rect[$i][3] - $Rect[$i][1] & ")" & @CRLF
- Next
- $Code[4] &= " _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0, 0, $width, $height)" & @CRLF & _
- "EndFunc" & @CRLF
- GUICtrlSetData($CodeGUI[1], $Code[0] & $Code[1] & $Code[2] & $Code[3] & $Code[4] & $Code[5] & $Code[6] & $Code[7] & $Code[8] & $Code[9])
- EndFunc ;==>_UpdateCode
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement