Probleme mit Splash-Screen
-
Hi zusammen!
Vorweg: Ich hab den Tipp in den FAQs gelesen mit dem Splash-Screen einfügen über:
--> Dem Projekt hinzufügen --> Komponente --> Splashscreen.ABER:
1. Arbeite ich mit der englischen VC++ 5.0 Version und
2. hab ich die Komponente irgendwie netNaja, ich dachte mir halt, ich designe mir meinen Splashscreen selber und baue ihn selber in mein Programm mit ein.
Bei meinem Programm handelt es sich um ein MDI Programm.
Mein Splash Screen ist ein Dialog mit einer Bildkomponente drauf + ein Edit Feld, welches während mein Programm lädt (Datenbankverbindung aufbaut, Initalisierungen etc.) diese Infos anzeigen soll.Nun folgendes Problem:
Wenn ich nun meinen Splashdialog lade und anzeige, während im Hintergrund meine MDI Anwendung eine Verbindung zur Datenbank aufbaut etc. bleibt mein Dialog einfach grau
Mein Bild und mein Text werden nicht angezeigtKann mir jemand einen Tipp geben, wie ich z.B. veranlasse, dass sich
a) mein Splashscreen (Dialog) immer im Fordergrund befindet
und
b) sich mein Dialog einfach alle paar ms einfach neu zeichnetWäre sehr dankbar für Tipps und Anregungen.
Hier mein Code:
// Initalisierung meiner Anwendung BOOL CMyApp::InitInstance() { CSplashScrn* pSplash; pSplash = new CSplashScrn; if(pSplash != NULL) { pSplash->Create(IDD_SPLASHDIALOG,NULL); pSplash->m_EditInfo = "Anwendung wird initalisiert..."; pSplash->UpdateData(FALSE); pSplash->ShowWindow(SW_NORMAL); } ... // Verschiedene Initalisierungen pSplash->m_EditInfo = "bla bla...."; pSplash->UpdateData(FALSE); ... // Datenbankverbindung aufbauen // etc. pSplash->m_EditInfo = "Datenbankverbindung wird aufgebaut..."; pSplash->UpdateData(FALSE); ... ... am Ende pSplash->DestroyWindow(); }
-
Entweder du startest einen Thread der die Initialisierungen macht oder du rufst ab und an das auf:
MSG msg; while(PeekMeesage(&msg,0,0,0)) AfxGetApp()->PumpMessage();
Für immer im Vordergrund: CWnd::SetWindowPos(&wndTopMost,...);
[ Dieser Beitrag wurde am 06.12.2002 um 15:16 Uhr von Nemesyzz editiert. ]