Startbildschrim erstellen
-
Hallo,
ich versuche meiner Anwendung einen Startbildschirm zu verpassen.
(wie man ihn z.B. von Word, Excel, Adobe Reader, ... kennt)Wie macht man das?
Ich habe es so probiert:
UINT CDriveTestDlg::ThreadStart(LPVOID pParam){ CDriveTestDlg* pDriveTestDlg = (CDriveTestDlg*)pParam; pDriveTestDlg->Start(); return 0; } void CDriveTestDlg::Start(){ CStartDlg start; start.Create(IDD_START_DIALOG, NULL); start.ShowWindow(SW_SHOW); Sleep(2000); start.DestroyWindow(); }
Und in OnInitDialog dann den Thread aufgerufen.
Aber irgendwie sehe ich den Inhalt des Dialoges nicht, er ist leer -> ???Ausserdem kann man bereits im Hintergrund die Anwendung sehen. Sollte auch nicht sein, ist ja ein Ladebildschirm...
Was mache ich da falsch?
Ich will eigentlich nur den Dialog anzeigen, und einen Fortschrittbalken laufen lassen, unter dem ein Statustext steht.Das ganze soll nur eine bestimmte Zeit überbrücken, und dann die Anwendung starten.
mfg
trequ
-
Mit welcher VC++ Version programmierst du? In VC++ 6 gabs da noch die Ressource "Splashscreen", die aber nur in MDI/SDI-Anwendungenm funktioniert. Einbinden geht unter Menü zum Project/dem Proj. hinzufügen/Komponenten und Steuerelem./
Ordner Visual C++ Components/Begrüßungsbildschirm. Unter .NET sieht das ganze wieder etwas schwieriger aus.
-
Hallo,
Danke für die Info, aber das geht mit Dialog-Anwendungen nicht.
Habs jetzt anders gemacht.
Ist umständlich, aber da man sonst nix findet:1. Den Start-Dialog erstellen.
2. In der Hauptanwendung bei OnInitDialog den Start-Dialog modal anzeigen
3. Im Start-Dialog die OnIntiDialog hinzufügen.
4. Im Start-Dialog einen Timer einbauen, der nach 10ms durch OnInitDialog (Start-Dialog) aufgerufen wird.
5. Im Start-Dialog bei OnTimer den Timer zerstören, den Fortschrittsbalken laufen lassen und anschließend CDialog::OnOK() aufrufen.Fertig.
mfg
trequ