ERLEDIGT
JA
JA
ANTWORTEN
2
2
ZUGRIFFE
364
364
EMPFEHLEN
-
Hallo,
habe mir eine WINAPI Anwendung geschrieben, die Ordner und Dateien von CD auf ein wählbares beschreibbares
Laufwerk kopiert. Arbeite hier mit der Funktion CopyFileEx. Die Software arbeitet auch ohne Probleme.
Zur Kontrolle lasse ich mir das Ergebnis welche Datei gerade kopiert wird u.s.w. , anzeigen.
Verschiebe ich nun das Fenster an eine andere Stelle, wird weiter kopiert aber die Anzeige der Daten
in den Editboxen bleibt stehen.
Suche jetzt schon seit ein paar Tagen ohne Erfolg nach einer Lösung.
Kann mir jemand einen Tipp geben, wie das zu ändern ist?
Arbeite mit Dev-C++.
Hier ein Auszug wo die Kopierfunktion gestartet wird:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
case WM_COMMAND: { if(lParam==(LPARAM)hButtonExit && HIWORD(wParam)==BN_CLICKED) // Button beenden { SendMessage(hwnd,WM_CLOSE,0,0); } if(lParam==(LPARAM)hButtonDna && HIWORD(wParam)==BN_CLICKED) // Button starten { char szTextTo[256]; // Text aus der Editbox holen GetWindowText (hwndTo, szTextTo, 256); GetWindowText (hwndZiel, szTextTo, 256); // Diesen Text in das Label schreiben und // den Text der Editbox löschen SetWindowText (hwndZiel, szTextTo); SetWindowText (hwndTo, szTextTo); char lwBuchstabe[1]; lwBuchstabe[0] = szTextTo[0]; if(laufwerke(lwBuchstabe)!=true) { MessageBox(hwnd, "Das angegebene Laufwerk ist nicht vorhanden!\n" "oder eine CD-ROM! Bitte korrigieren Sie Ihre Eingabe.", "",MB_OK | MB_ICONERROR); } else { int gesamt; gesamt = rekursivDirFileSize(lauferkFrom);//Gesamtgröße in Byte ermitteln //Übergabe an die rekursive Funktion //kopieren! kopieren(hwndPB,// Daten an InitCommonControls() senden hwndTextDatei, // Daten zum Anzeigen der bereits kopierten Dateien. hwndDateiGroesse,// Daten zum Anzeigen der Dateigröße. hwndDateiAnzahl, // Anzahl der bereits kopierten Dateien lauferkFrom, // Startlaufwerk szTextTo,// Ziellaufwerk gesamt); //Rekursive Funktion zum kopiren und ausgeben der Daten char ergebnis[256]; strcpy(ergebnis,"Kopieren nach "); strcat(ergebnis,szTextTo); strcat(ergebnis," erfolgreich beendet"); MessageBox(hwnd, ergebnis,"", MB_OK); DestroyWindow(hwnd); } } return 0; }Geändert von Opscript (22.10.06 um 10:10 Uhr)
-
Du blockierst die Nachrichtenverarbeitung des Fensters beim Kopieren. Deshalb werden die neuen Texte nicht angezeigt.
Wenn du innerhalb der Kopierfunktion die Text-Anzeigen änderst, dann rufe danach UpdateWindow mit dem jeweiligen HWND auf. Das sollte die Anzeigen anpassen.
-
Problem gelöst.
Antwort hier:
http://www.codeproject.com/useritems/MultithreadingTutorial.asp
Ähnliche Themen
-
CSS blockiert Accordion?
Von nordi im Forum Javascript & AjaxAntworten: 7Letzter Beitrag: 05.11.10, 17:48 -
System.Timer -- blockiert Anwendung
Von freakbrother im Forum .NET Application und Service DesignAntworten: 3Letzter Beitrag: 24.11.09, 12:26 -
SocketInputStream blockiert
Von jb007 im Forum JavaAntworten: 4Letzter Beitrag: 11.05.07, 23:20 -
ASSP blockiert RAM
Von GalaxyWarrior im Forum Linux & UnixAntworten: 1Letzter Beitrag: 05.01.07, 16:26 -
Router blockiert?!
Von Nospherates im Forum NetzwerkeAntworten: 2Letzter Beitrag: 13.11.05, 19:38





Zitieren
Login






