- Offizieller Beitrag
Theoretisch sollte man 28800 einzelne Grafiken (Pics) erstellen können (die Hilfe sagt dazu: GUI_MAXCONTROLS = 65532), aber praktisch sieht das etwas anders aus:
Spoiler anzeigen
#Region Header
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Global $Laenge = 120, $Breite = 240, $Kastengroesse = 5
Global $Feld[$Laenge][$Breite]
Opt('MouseCoordMode', 0)
Opt("GUIOnEventMode", 1)
#EndRegion Header
#Region GUI
$Form1 = GUICreate("Form1", $Breite * $Kastengroesse + 20, $Laenge * $Kastengroesse + 20, -1, -1, BitOr($GUI_SS_DEFAULT_GUI, $WS_CLIPCHILDREN))
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
;~ GUICtrlCreatePic(@WindowsDir & "\web\wallpaper\Mondkrater.jpg", 10, 10, $Breite * $Kastengroesse, $Laenge * $Kastengroesse)
$aWPos = WinGetPos($Form1)
$Form2 = GUICreate("Form2", $Breite * $Kastengroesse + 20, $Laenge * $Kastengroesse + 20, $aWPos[0]+3, $aWPos[1]+29, $WS_POPUP, Default, $Form1)
;~ Global $hGraphic = GUICtrlCreateGraphic(10, 10, $Breite * $Kastengroesse, $Laenge * $Kastengroesse)
;~ GUICtrlSetOnEvent(-1, '_feld')
$count = 0
$ret = 0
For $x = 0 To $Breite - 1 Step 1
For $y = 0 To $Laenge - 1 Step 1
$ret = GUICtrlCreatePic('', 10+$Kastengroesse * $x, 10+$Kastengroesse * $y, $Kastengroesse, $Kastengroesse, Default, $WS_EX_CLIENTEDGE)
If $ret <> 0 Then $count += 1
ToolTip($count)
;~ GUICtrlSetGraphic($hGraphic, $GUI_GR_RECT, $Kastengroesse * $x, $Kastengroesse * $y, $Kastengroesse, $Kastengroesse)
Next
Next
WinSetTrans($Form2, '', 80)
GUISetState(@SW_SHOW, $Form1)
GUISetState(@SW_SHOW, $Form2)
GUIRegisterMsg($WM_MOVE, '_WM_MOVE')
#EndRegion GUI
[/autoit] [autoit][/autoit] [autoit]While 1
Sleep(100)
WEnd
Func _feld()
Local $aInfo = GUIGetCursorInfo($Form2)
$x = Int(($aInfo[0]-10)/5)
$Y = Int(($aInfo[1]-10)/5)
ToolTip($x&@CRLF&$y)
EndFunc ;==>_feld
Func _Exit()
Exit
EndFunc ;==>_Exit
Func _WM_MOVE()
Local $pos = WinGetPos($Form1)
WinMove($Form2, '', $pos[0]+3, $pos[1]+29)
EndFunc
Bei mir hört er bei 9982 auf zu zählen, was ein Zeichen dafür ist, dass die anderen Controls nicht erstellt worden sind. Wie man dann ja auch zu sehen bekommt.