Ich weiß nicht ob das schon mal gepostet wurde SuFu hat mir nixt verraten.
Also, ich hab gegoogelt ob man 2 while schleifen gleichzeitig laufen lassen kann. Und bin dabei durch zufall auf das hier gestossen.
PHP Code:
#include <GuiConstants.au3>
$my_gui = GUICreate("MyGUI", 392, 323)
_GuiHole($my_gui, 80, 30, 200, 300)
GUISetState()
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case Else
;;;
EndSelect
WEnd
Exit
Func _GuiHole($h_win, $i_x, $i_y, $i_sizew, $i_sizeh)
Dim $pos, $outer_rgn, $inner_rgn, $wh, $combined_rgn, $ret
$pos = WinGetPos($h_win)
$outer_rgn = DllCall("gdi32.dll", "long", "CreateRectRgn", "long", 0, "long", 0, "long", $pos[2], "long", $pos[3])
If IsArray($outer_rgn) Then
$inner_rgn = DllCall("gdi32.dll", "long", "CreateEllipticRgn", "long", $i_x, "long", $i_y, "long", $i_x + $i_sizew, "long", $i_y + $i_sizeh)
If IsArray($inner_rgn) Then
$combined_rgn = DllCall("gdi32.dll", "long", "CreateRectRgn", "long", 0, "long", 0, "long", 0, "long", 0)
If IsArray($combined_rgn) Then
DllCall("gdi32.dll", "long", "CombineRgn", "long", $combined_rgn[0], "long", $outer_rgn[0], "long", $inner_rgn[0], "int", 4)
$ret = DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $h_win, "long", $combined_rgn[0], "int", 1)
If $ret[0] Then
Return 1
Else
Return 0
EndIf
Else
Return 0
EndIf
Else
Return 0
EndIf
Else
Return 0
EndIf
EndFunc
Hier mal ein Pic davon






