Ich habe da ein Parr Probleme:
Warum wird da das Pic nicht akktualisiert?
Warum wird das Pic nicht mitgezogen,wenn ich das Fenster verschiebe?
Und warum kann ich es nach dem Minimieren nicht wiederherstellen?
THX
Problem mit Pic
-
- [ offen ]
-
Jam00 -
19. Februar 2009 um 19:42 -
Geschlossen -
Erledigt
-
-
Ich weiß garnicht wo ich bei dem Beispiel anfangen soll Fehler auszubessern, deswegen habe ich jetzt auf halbem Weg aufgehört, weil es mir zu bunt wurde. Warum musst du immer eine Extrawurst habe?
Schneller wäre ich, wenn ich den Code komplett neu schreiben würde.
Ergebnis meiner bisherigen Bemühungen:Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit]
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Dim $Mitte[2]
$Mitte[0] = @DesktopWidth /2 - (520/2)
$Mitte[1] = @DesktopHeight / 2- (570/2)
#Region ### START Koda GUI section ### Form=
$Ramen = GUICreate("INC Light", 520, 570, $Mitte[0],$Mitte[1],$WS_POPUP);+$WS_CLIPCHILDREN)
$RamenPic = GUICtrlCreatePic(@ScriptDir & "\Skin\1.gif", 0, 0, 520, 570, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS),$GUI_WS_EX_PARENTDRAG)
_Ecken($Ramen,0,0,11,11)
WinSetTrans ($Ramen,"",200)
$Innen = GUICreate("", 507, 555,3,5,$WS_POPUP+$WS_CHILD, BitOR ($GUI_WS_EX_PARENTDRAG,$WS_EX_MDICHILD),$Ramen)
$Hintergrund = GUICtrlCreatePic(@ScriptDir & "\Skin\2.gif", 0, 0, 507, 557, BitOR($SS_NOTIFY,$WS_CLIPSIBLINGS,$WS_DISABLED))
$X = GUICtrlCreatePic(@ScriptDir & "\Skin\3.gif", 478, 0, 30, 15, 0);BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS,$WS_EX_TRANSPARENT,$WS_EX_TOPMOST ))
GUICtrlSetBkColor (-1,$GUI_BKCOLOR_TRANSPARENT)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $Innen, "int", 400, "long", 0x00040010);Slide von unten ein
GUISetState(@SW_SHOW,$Innen)
GUISetState(@SW_SHOW,$Ramen)
$Status = False
#EndRegion ### END Koda GUI section ###
GUIRegisterMsg($WM_MOVE, "_Move")
While 1
If _Over($Innen,$X) Then
;~ If $Status = False Then
;~ GUISetState (@SW_LOCK,$Innen)
GUICtrlSetImage ($X,@ScriptDir & "\Skin\4.gif")
;~ GUISetState (@SW_UNLOCK,$Innen)
;~ $Status = True
;~ EndIf
Else
;~ If $Status = True Then
;~ GUISetState (@SW_LOCK,$Innen)
GUICtrlSetImage ($X,@ScriptDir & "\Skin\3.gif")
;~ GUISetState (@SW_UNLOCK,$Innen)
;~ $Status = False
;~ EndIf
EndIf
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE, $X
Exit
EndSwitch
Sleep (10)
WEnd
Func _Ecken($h_win, $i_x1, $i_y1, $i_x3, $i_y3)
Local $XS_pos, $XS_ret, $XS_ret2
$XS_pos = WinGetPos($h_win)
$XS_ret = DllCall("gdi32.dll", "long", "CreateRoundRectRgn", "long", $i_x1, "long", $i_y1, "long", $XS_pos[2], "long", $XS_pos[3], "long", $i_x3, "long", $i_y3)
If $XS_ret[0] Then
$XS_ret2 = DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $h_win, "long", $XS_ret[0], "int", 1)
EndIf
EndFunc ;==>_GuiRoundCorners
Func _Move()
GUISetState (@SW_LOCK,$Innen)
GUISetState (@SW_UNLOCK,$Innen)
EndFunc
Func _Over($hWnd,$hObj)
Local $Curser
$Curser = GUIGetCursorInfo($hWnd)
If $Curser[4] = $hObj Then
Return True
Else
Return False
EndIf
EndFunc -
Was für Extrawürste?
Danke, das ist schon echt gut!
Was denn für Fehler?
Jetzt hab ich nur noch das Problem mit dem wiederherstellen, wenn ich es minimiert habe!
Danke
EDIT: Jetzt geht es mit dem Minimieren
-
Okay, ich hab es jezt hinbekommen!Also das es nicht mehr flackert, ganz simpel, man muss nur auf die Idee kommen^^
PS: Ihr müsst die alten Dateien löschen, damit es geht!