Hier noch mal eine offenen Fragen, mit Bilder dazu:
Wenn ich die Grafik, wie oben beschrieben, verschwinden lasse, dann bleibt dennoch ein Rückstand dieser Grafik übrig!
Es wird alles gelöscht, wo sich auf der nächsten Seite (Räumlich) eine eine Gruppe befindet! Zwischen den Gruppen bleibt die Grafik bestehen!
Wieso das? Wie kann ich das beheben?
[Blockierte Grafik: http://saved.im/mtcxmdq5dwhl_vs/autoit2.jpg]
Zusehen unter der Gruppe 'Quelle'!
Und wenn ich eine PNG-Grafik mit Alpha-Werten (halb transparent) habe, dann werden diese Grafiken so oft geladen (so scheint es zumindest), dass diese Alpha-Werte nicht mehr gut aussehen ... dass die Alpha-Werte nicht mehr Transparent sind!
Was kann ich dagegen unternehmen?
[Blockierte Grafik: http://saved.im/mtcxmdq4ymn4_vs/autoit1.jpg]
Das "CK"-Logo sollte eigentlich so wie in meinen Avatar aussehen! Die PNG-Datei ist die selbe!
Und hier der aktuelle Quelltext:
Spoiler anzeigen
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#Include <WinAPI.au3>
; Allgemeine Variablen
$version = "v0.4.1 _ 18.04.2010"
$titel = "AutoCDaufHDD"
; ...
; ### Start der GUI Eigenschaften ###
$GUI = GUICreate("AutoCDaufHDD", 401, 411, -1, -1)
; Quelle
$Group1 = GUICtrlCreateGroup("Quelle:", 8, 5, 385, 50)
$quelle = GUICtrlCreateInput("", 16, 21, 369, 21)
; Ziel
$Group2 = GUICtrlCreateGroup("Ziel:", 8, 60, 385, 140)
$ziel = GUICtrlCreateInput("", 16, 76, 369, 21)
$sub = GUICtrlCreateCheckbox("Soll ein Unterordner je CD angelegt werden?", 16, 100, 329, 25)
$sub_datum = GUICtrlCreateCheckbox("Mit Datum und Uhrzeit?", 28, 125, 233, 25)
$bar = GUICtrlCreateCheckbox("Soll ein Kopier-Fortschrits-Blaken angezeigt werden?", 16, 150, 280, 25)
$text_bar = GUICtrlCreateLabel("(Nur mit NEIN koennen mehrere Prozesse gleichzeitig ausgefuehrt werden!)", 16, 175, 359, 17)
; Logbuch
$Group4 = GUICtrlCreateGroup("Logbuch:", 8, 205, 385, 90)
$Checkbox1 = GUICtrlCreateCheckbox("Soll ein Logbuch angelegt angelegt werden?", 16, 220, 329, 25)
$Radio1 = GUICtrlCreateRadio("Als *.log Datei speichern!", 28, 245, 289, 17)
GuiCtrlSetState($Radio1, $GUI_CHECKED)
$Radio2 = GUICtrlCreateRadio("Als *.csv Datei speichern!", 28, 260, 289, 25)
; Status
$Group3 = GUICtrlCreateGroup("Status:", 8, 300, 385, 60)
$Nein = GUICtrlCreateLabel("Nein", 216, 324, 30, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
$Label1 = GUICtrlCreateLabel("Unbekannt", 314, 333, 66, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xC0C0C0)
$Label2 = GUICtrlCreateLabel("Ja", 334, 310, 17, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x008000)
$text3 = GUICtrlCreateLabel("Quelle ist vom Typ:", 16, 340, 94, 17)
$Label3 = GUICtrlCreateLabel("Quelle gefunden?", 16, 320, 88, 17)
; Knöpfe unten
$Button2 = GUICtrlCreateButton("Abbrechen", 7, 370, 153, 30)
$Button3 = GUICtrlCreateButton("Info/Hilfe", 165, 370, 80, 30)
$Button4 = GUICtrlCreateButton("Zurück!", 165, 370, 80, 30)
GuiCtrlSetState($Button4, $GUI_HIDE)
$Button1 = GUICtrlCreateButton("Kopieren starten!", 248, 370, 145, 30)
; Impressum
DirCreate (@TempDir&"\"&$titel_hash)
$pfad_bild1 = @TempDir&"\"&$titel_hash&"\logo1.png"
FileInstall("logo1.png", $pfad_bild1, 1)
$pfad_bild2 = @TempDir&"\"&$titel_hash&"\logo2.png"
FileInstall("logo2.png", $pfad_bild2, 1)
_GDIPlus_StartUp()
$handle_bild1 = _GDIPlus_ImageLoadFromFile($pfad_bild1)
$handle_bild2 = _GDIPlus_ImageLoadFromFile($pfad_bild2)
$GUI_grafik = _GDIPlus_GraphicsCreateFromHWND($GUI)
$Label4 = GUICtrlCreateLabel("titel", 208, 8, 20, 17, $SS_CENTER)
$Label5 = GUICtrlCreateLabel("version", 208, 32, 38, 17, $SS_CENTER)
$Label6 = GUICtrlCreateLabel("Datum", 208, 56, 35, 17, $SS_CENTER)
$Label7 = GUICtrlCreateLabel("Autor: Chris ", 208, 80, 104, 17)
$Label8 = GUICtrlCreateLabel("Freigegeben ...!", 208, 104, 147, 65)
$Label9 = GUICtrlCreateLabel("Nach einer neuerer Version suchen:", 8, 168, 183, 17)
$Button5 = GUICtrlCreateButton("Button4", 8, 184, 185, 25)
$Label10 = GUICtrlCreateLabel("Auf der Seite des Autors schauen:", 6, 234, 165, 17)
$Button6 = GUICtrlCreateButton("Button4", 6, 250, 185, 25)
$Label11 = GUICtrlCreateLabel("Kontakt mit dem Autor aufnehmen:", 9, 299, 167, 17)
$Button7 = GUICtrlCreateButton("Button4", 9, 315, 185, 25)
GuiCtrlSetState($Label4, $GUI_HIDE)
GuiCtrlSetState($Label5, $GUI_HIDE)
GuiCtrlSetState($Label6, $GUI_HIDE)
GuiCtrlSetState($Label7, $GUI_HIDE)
GuiCtrlSetState($Label8, $GUI_HIDE)
GuiCtrlSetState($Label9, $GUI_HIDE)
GuiCtrlSetState($Label10, $GUI_HIDE)
GuiCtrlSetState($Label11, $GUI_HIDE)
GuiCtrlSetState($Button5, $GUI_HIDE)
GuiCtrlSetState($Button6, $GUI_HIDE)
GuiCtrlSetState($Button7, $GUI_HIDE)
GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]; ### Start der GUI-Anzeige ###
While 1
While 1
Switch GUIGetMsg()
; Wenn man Impressum klickt
Case $Button3
GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT")
GuiCtrlSetState($Group1, $GUI_HIDE)
GuiCtrlSetState($quelle, $GUI_HIDE)
GuiCtrlSetState($Group2, $GUI_HIDE)
GuiCtrlSetState($ziel, $GUI_HIDE)
GuiCtrlSetState($sub, $GUI_HIDE)
GuiCtrlSetState($sub_datum, $GUI_HIDE)
GuiCtrlSetState($bar, $GUI_HIDE)
GuiCtrlSetState($text_bar, $GUI_HIDE)
GuiCtrlSetState($Group4, $GUI_HIDE)
GuiCtrlSetState($Checkbox1, $GUI_HIDE)
GuiCtrlSetState($Radio1, $GUI_HIDE)
GuiCtrlSetState($Radio2, $GUI_HIDE)
GuiCtrlSetState($Group3, $GUI_HIDE)
GuiCtrlSetState($Nein, $GUI_HIDE)
GuiCtrlSetState($Label1, $GUI_HIDE)
GuiCtrlSetState($Label2, $GUI_HIDE)
GuiCtrlSetState($text3, $GUI_HIDE)
GuiCtrlSetState($Label3, $GUI_HIDE)
GuiCtrlSetState($Button4, $GUI_SHOW)
GuiCtrlSetState($Button3, $GUI_HIDE)
GuiCtrlSetState($Label4, $GUI_SHOW)
GuiCtrlSetState($Label5, $GUI_SHOW)
GuiCtrlSetState($Label6, $GUI_SHOW)
GuiCtrlSetState($Label7, $GUI_SHOW)
GuiCtrlSetState($Label8, $GUI_SHOW)
GuiCtrlSetState($Label9, $GUI_SHOW)
GuiCtrlSetState($Label10, $GUI_SHOW)
GuiCtrlSetState($Label11, $GUI_SHOW)
GuiCtrlSetState($Button5, $GUI_SHOW)
GuiCtrlSetState($Button6, $GUI_SHOW)
GuiCtrlSetState($Button7, $GUI_SHOW)
; Wenn man Zurück im Impressum klickt
Case $Button4
GUIRegisterMsg($WM_PAINT, "crys_png_hide")
GuiCtrlSetState($Group1, $GUI_SHOW)
GuiCtrlSetState($quelle, $GUI_SHOW)
GuiCtrlSetState($Group2, $GUI_SHOW)
GuiCtrlSetState($ziel, $GUI_SHOW)
GuiCtrlSetState($sub, $GUI_SHOW)
GuiCtrlSetState($sub_datum, $GUI_SHOW)
GuiCtrlSetState($bar, $GUI_SHOW)
GuiCtrlSetState($text_bar, $GUI_SHOW)
GuiCtrlSetState($Group4, $GUI_SHOW)
GuiCtrlSetState($Checkbox1, $GUI_SHOW)
GuiCtrlSetState($Radio1, $GUI_SHOW)
GuiCtrlSetState($Radio2, $GUI_SHOW)
GuiCtrlSetState($Group3, $GUI_SHOW)
GuiCtrlSetState($Nein, $GUI_SHOW)
GuiCtrlSetState($Label1, $GUI_SHOW)
GuiCtrlSetState($Label2, $GUI_SHOW)
GuiCtrlSetState($text3, $GUI_SHOW)
GuiCtrlSetState($Label3, $GUI_SHOW)
GuiCtrlSetState($Button4, $GUI_HIDE)
GuiCtrlSetState($Button3, $GUI_SHOW)
GuiCtrlSetState($Label4, $GUI_HIDE)
GuiCtrlSetState($Label5, $GUI_HIDE)
GuiCtrlSetState($Label6, $GUI_HIDE)
GuiCtrlSetState($Label7, $GUI_HIDE)
GuiCtrlSetState($Label8, $GUI_HIDE)
GuiCtrlSetState($Label9, $GUI_HIDE)
GuiCtrlSetState($Label10, $GUI_HIDE)
GuiCtrlSetState($Label11, $GUI_HIDE)
GuiCtrlSetState($Button5, $GUI_HIDE)
GuiCtrlSetState($Button6, $GUI_HIDE)
GuiCtrlSetState($Button7, $GUI_HIDE)
; Wenn man Kopieren klickt
Case $Button1
ExitLoop
; Wenn man Abbrechen klickt
Case $Button2
crys_ende()
Exit
; Wenn man X klickt
Case $GUI_EVENT_CLOSE
crys_ende()
Exit
EndSwitch
; ...
WEnd
; ### Start der kopieren Befehle ###
; ...
WEnd
Func MY_WM_PAINT($hWnd, $Msg, $wParam, $lParam)
_WinAPI_RedrawWindow($gui, 0, 0, $RDW_UPDATENOW)
_GDIPlus_GraphicsDrawImage($gui_grafik, $handle_bild1, 10, 10)
_GDIPlus_GraphicsDrawImage($gui_grafik, $handle_bild2, 200, 250)
_WinAPI_RedrawWindow($gui, 0, 0, $RDW_VALIDATE)
Return $GUI_RUNDEFMSG
EndFunc
Func crys_png_hide($hWnd, $Msg, $wParam, $lParam)
_WinAPI_RedrawWindow($gui, 0, 0, $RDW_UPDATENOW)
_GDIPlus_GraphicsClear($handle_bild1)
_GDIPlus_GraphicsClear($handle_bild2)
_WinAPI_RedrawWindow($gui, 0, 0, $RDW_VALIDATE)
Return $GUI_RUNDEFMSG
EndFunc
Func crys_ende()
; Freigeben der Ressourcen
_GDIPlus_GraphicsDispose($gui_grafik)
_GDIPlus_ImageDispose($handle_bild1)
_GDIPlus_ImageDispose($handle_bild2)
_GDIPlus_ShutDown()
; Löschen der Temp.-Dateien
DirRemove(@TempDir&"\"&$titel_hash, 1)
EndFunc
; ### ENDE ###
[/autoit]Wie löse ich die Probleme?
thx