Steuerelement "Prozess Controll"
-
Hallo.
Ich möchte so was ähnliches wie eine Prozess kontrolle erstellen. Anstatt diese Prozesskontrolle mit den Balken die sich je nach % aufbauen, möchte ich ein Dialogfeld öffenen, das nur anzeigt:
"Daten werden aufbereitet..."
Im Hintergrund sollen nun bestimmte auswertungen gemacht werden, die ich in einem Thread laufen lasse.
Funktioniert auch alles soweit. Wenn nun der Thread aber beendet ist, schließt er mir das Dialogfenster aber nicht mehr.
Sprich: Der Thread ist fertig aber das Fenster mit "Daten werden aufbereitet..." schließt sich nicht.
Hier nun der Sourcecode:
CZeichnen.h
public: CZeichnen(CWnd* pParent = NULL); // Standardkonstruktor virtual ~CZeichnen(); void Anzeigen(); static UINT DialogAnzeigen (LPVOID pParam); CDatenaufbereitung2 *Aufbereitung;
CZeichnen.cpp
//Konstruktor Aufbereitung = new CDatenaufbereitung2; Aufbereitung->Create(IDD_Aufbereitung2);
CZeichnen.cpp
//Thread UINT CZeichnen::DialogAnzeigen(LPVOID pParam) { CZeichnen* pDlg = (CZeichnen*) pParam; pDlg->Anzeigen(); return 0; } void CZeichnen::Anzeigen() { ......... //jede Menge Moveto, LineTo etc Aufbereitung->DestroyWindow(); //Dialog beenden nach abarbeitung }
CZeichnen.cpp
//Button klick { UpdateData(TRUE); Aufbereitung->ShowWindow(SW_SHOWNORMAL); //Dialog "Daten werden aufbereitet ..." anzeigen pThread = AfxBeginThread (DialogAnzeigen, this); //Thread Starten }
Da die Buttonfunktion nach starten des Threads abgearbeitet ist, kann ich da die DetroyWindow() auch nicht mit einbauen und hab sie somit ans ende des Threads gesetzt.
Wie gesagt: Problem: Er schließt den Dialog nicht
-
alles klar
man sollte es mal mit CloseWindow() probieren
sorry, bin irgendwie nicht so richtig da heute