Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>
HotKeySet("{ESC}", "Terminate")
Opt("GUIOnEventMode", 1)
Opt("MouseCoordMode", 2)
$w = 40 ; <<< échelle
$gui = GuiCreate("", 8*$w, 8*$w, -1, 100, BitOr($WS_POPUP, $WS_BORDER), BitOr($WS_EX_LAYERED, $WS_EX_COMPOSITED))
GuiSetFont(($w/10)*6, 600, 0, "Arial Unicode MS")
$x = 0
$y = 0
$blanc = 0
Dim $cases[64]
For $i = 0 to 63
$blanc = not $blanc
$cases[$i] = GuiCtrlCreateLabel("", $x, $y, $w, $w, -1, $GUI_WS_EX_PARENTDRAG)
If $blanc Then
GUICtrlSetBkColor(-1, 0xffffff)
Else
GUICtrlSetBkColor(-1, 0xbbbbbb)
EndIf
$x += $w
If $x >$w*7 Then
$blanc = not $blanc
$x = 0
$y += $w
EndIf
Next
Dim $pieces[32]
; noirs
$pieces[0] = GuiCtrlCreateLabel(ChrW(9820), $w*0, 0, $w, $w, 0x0201)
$pieces[1] = GuiCtrlCreateLabel(ChrW(9822), $w*1, 0, $w, $w, 0x0201)
$pieces[2] = GuiCtrlCreateLabel(ChrW(9821), $w*2, 0, $w, $w, 0x0201)
$pieces[3] = GuiCtrlCreateLabel(ChrW(9819), $w*3, 0, $w, $w, 0x0201)
$pieces[4] = GuiCtrlCreateLabel(ChrW(9818), $w*4, 0, $w, $w, 0x0201)
$pieces[5] = GuiCtrlCreateLabel(ChrW(9821), $w*5, 0, $w, $w, 0x0201)
$pieces[6] = GuiCtrlCreateLabel(ChrW(9822), $w*6, 0, $w, $w, 0x0201)
$pieces[7] = GuiCtrlCreateLabel(ChrW(9820), $w*7, 0, $w, $w, 0x0201)
For $i = 8 to 15
$pieces[$i] = GuiCtrlCreateLabel(ChrW(9823), $w*($i-8), $w, $w, $w, 0x0201)
Next
; blancs
For $i = 16 to 23
$pieces[$i] = GuiCtrlCreateLabel(ChrW(9817), $w*($i-16), $w*6, $w, $w, 0x0201)
Next
$pieces[24] = GuiCtrlCreateLabel(ChrW(9814), $w*0, $w*7, $w, $w, 0x0201)
$pieces[25] = GuiCtrlCreateLabel(ChrW(9816), $w*1, $w*7, $w, $w, 0x0201)
$pieces[26] = GuiCtrlCreateLabel(ChrW(9815), $w*2, $w*7, $w, $w, 0x0201)
$pieces[27] = GuiCtrlCreateLabel(ChrW(9813), $w*3, $w*7, $w, $w, 0x0201)
$pieces[28] = GuiCtrlCreateLabel(ChrW(9812), $w*4, $w*7, $w, $w, 0x0201)
$pieces[29] = GuiCtrlCreateLabel(ChrW(9815), $w*5, $w*7, $w, $w, 0x0201)
$pieces[30] = GuiCtrlCreateLabel(ChrW(9816), $w*6, $w*7, $w, $w, 0x0201)
$pieces[31] = GuiCtrlCreateLabel(ChrW(9814), $w*7, $w*7, $w, $w, 0x0201)
For $i = 0 to 31
GUICtrlSetBkColor($pieces[$i], $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetState($pieces[$i], $GUI_ONTOP)
GUICtrlSetOnEvent($pieces[$i], "_Drag")
Next
GuisetState()
While 1
Sleep(10)
Wend
Func _Drag()
Local $MousePos = MouseGetPos()
Local $pPos = ControlGetPos($gui, "", @GUI_CtrlId)
$x_pos0 = Round($pPos[0]/$w)
$y_pos0 = Round($pPos[1]/$w)
Local $diff[2]
$diff[0] = $MousePos[0]-$pPos[0]
$diff[1] = $MousePos[1]-$pPos[1]
Do
$MPos = MouseGetPos()
ControlMove($gui, "", @GUI_CtrlId, $MPos[0]-$diff[0], $MPos[1]-$diff[1])
Sleep(10)
Until not _IsPressed("01")
$pPos = ControlGetPos($gui, "", @GUI_CtrlId)
$x_pos = Round($pPos[0]/$w)
$y_pos = Round($pPos[1]/$w)
ControlMove($gui, "", @GUI_CtrlId, $x_pos*$w, $y_pos*$w)
msgbox(0,"", "case de départ : " & _NumCases($x_pos0, $y_pos0) & _
@crlf& "case d'arrivée : " & _NumCases($x_pos, $y_pos))
EndFunc
Func _NumCases($x, $y)
Return Chr(97+$x) & (8-$y)
EndFunc
Func Terminate()
Exit
EndFunc