Ich denke Hans Peters Version ist wohl die einfachste ![]()
Danke trotzdem an alle und sorry, wenn das eine zu leichte frage war
DFPWare
€DIT:
Ich komm irgendwie doch nich ganz klar damit:
Spoiler anzeigen
#include <GDIPlus.au3>
#include <Misc.au3>
Local $obenlinks = False
Local $mittelinks = False
Local $untenlinks = False
Local $obenmitte = False
Local $mittemitte = False
Local $untenmitte = False
Local $obenrechts = False
Local $mitterechts = False
Local $untenrechts = False
$hWnd = GUICreate("Tic Tac Toe",315,315)
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_Startup()
$hGraphics = _GDIPlus_GraphicsCreateFromHWND($hwnd)
$hBitmap = _GDIPlus_BitmapCreateFromGraphics(315, 315, $hGraphics)
Global $hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
_GDIPlus_GraphicsSetSmoothingMode($hBuffer, 2)
$hBgBrush = _GDIPlus_BrushCreateSolid(0xFF79ABFF)
Global $hStrichBrush = _GDIPlus_BrushCreateSolid(0xFF000000)
$hXOPen = _GDIPlus_PenCreate(0xFF112233,10)
GUISetState()
[/autoit] [autoit][/autoit] [autoit]Do
$msg = GUIGetMsg()
Select
Case _IsPressed(01)
$Pos = GUIGetCursorInfo()
Select
Case $Pos[0] <= 100 And $Pos[0] >= 1 And $Pos[1] <= 100 And $Pos[1] >= 1 ;oben links
$obenlinks = True
Case $Pos[0] <= 100 And $Pos[0] >= 1 And $Pos[1] <= 205 And $Pos[1] >= 106 ;mitte links
$mittelinks = True
Case $Pos[0] <= 100 And $Pos[0] >= 1 And $Pos[1] <= 310 And $Pos[1] >= 211 ;unten links
$untenlinks = True
Case $Pos[0] <= 205 And $Pos[0] >= 106 And $Pos[1] <= 100 And $Pos[1] >= 1 ;oben mitte
$obenmitte = True
Case $Pos[0] <= 205 And $Pos[0] >= 106 And $Pos[1] <= 205 And $Pos[1] >= 106 ;mitte mitte
$mittemitte = True
Case $Pos[0] <= 205 And $Pos[0] >= 106 And $Pos[1] <= 310 And $Pos[1] >= 211 ;unten mitte
$untenmitte = True
Case $Pos[0] <= 310 And $Pos[0] >= 211 And $Pos[1] <= 100 And $Pos[1] >= 1 ;oben rechts
$obenrechts = True
Case $Pos[0] <= 310 And $Pos[0] >= 211 And $Pos[1] <= 205 And $Pos[1] >= 106 ;mitte rechts
$mitterechts = True
Case $Pos[0] <= 310 And $Pos[0] >= 211 And $Pos[1] <= 310 And $Pos[1] >= 211 ;unten rechts
$untenrechts = True
EndSelect
EndSelect
_GDIPlus_GraphicsFillRect($hBuffer,0,0,315,315,$hBgBrush)
[/autoit] [autoit][/autoit] [autoit]Select
Case $obenlinks
_GDIPlus_GraphicsDrawLine($hBuffer,10,10,90,90,$hXOPen)
_GDIPlus_GraphicsDrawLine($hBuffer,90,10,10,90,$hXOPen)
Case $mittelinks
_GDIPlus_GraphicsDrawLine($hBuffer,10,115,90,195,$hXOPen)
_GDIPlus_GraphicsDrawLine($hBuffer,90,115,10,195,$hXOPen)
Case $untenlinks
_GDIPlus_GraphicsDrawLine($hBuffer,10,220,90,300,$hXOPen)
_GDIPlus_GraphicsDrawLine($hBuffer,90,220,10,300,$hXOPen)
Case $obenmitte
_GDIPlus_GraphicsDrawLine($hBuffer,115,10,195,90,$hXOPen)
_GDIPlus_GraphicsDrawLine($hBuffer,195,10,115,90,$hXOPen)
Case $mittemitte
_GDIPlus_GraphicsDrawLine($hBuffer,115,115,195,195,$hXOPen)
_GDIPlus_GraphicsDrawLine($hBuffer,195,115,115,195,$hXOPen)
Case $untenmitte
_GDIPlus_GraphicsDrawLine($hBuffer,115,220,195,300,$hXOPen)
_GDIPlus_GraphicsDrawLine($hBuffer,195,220,115,300,$hXOPen)
Case $obenrechts
_GDIPlus_GraphicsDrawLine($hBuffer,220,10,300,90,$hXOPen)
_GDIPlus_GraphicsDrawLine($hBuffer,300,10,220,90,$hXOPen)
Case $mitterechts
_GDIPlus_GraphicsDrawLine($hBuffer,220,115,300,195,$hXOPen)
_GDIPlus_GraphicsDrawLine($hBuffer,300,115,220,195,$hXOPen)
Case $untenrechts
_GDIPlus_GraphicsDrawLine($hBuffer,220,220,300,300,$hXOPen)
_GDIPlus_GraphicsDrawLine($hBuffer,300,220,220,300,$hXOPen)
EndSelect
_GitterZeichnen()
_GDIPlus_GraphicsDrawImageRect($hGraphics, $hBitmap, 0, 0, 315, 315)
Until $msg = -3
Func _GitterZeichnen()
_GDIPlus_GraphicsFillRect($hBuffer,100,0,5,315,$hStrichBrush)
_GDIPlus_GraphicsFillRect($hBuffer,205,0,5,315,$hStrichBrush)
_GDIPlus_GraphicsFillRect($hBuffer,0,100,315,5,$hStrichBrush)
_GDIPlus_GraphicsFillRect($hBuffer,0,205,315,5,$hStrichBrush)
EndFunc