Dialog - Dialogbasierendes Programm unsichtbar starten
- 
					
					
					
					
 Einfach statt einem modalen Dialog einen nicht-modalen Dialog nehmen Wer nicht weiss wie es geht: Am Beispiel des Projektes "Test123" 1. In den Eigenschaften vom Dialog das Häkchen "Sichtbar" entfernen 2. In CTest123App::InitInstance folgende Änderung vornehmen: Suche nach: CTest123Dlg dlg; m_pMainWnd = &dlg; int nResponse = dlg.DoModal(); if (nResponse == IDOK) { // ZU ERLEDIGEN: Fügen Sie hier Code ein, um ein Schließen des // Dialogfelds über OK zu steuern } else if (nResponse == IDCANCEL) { // ZU ERLEDIGEN: Fügen Sie hier Code ein, um ein Schließen des // Dialogfelds über "Abbrechen" zu steuern } // Da das Dialogfeld geschlossen wurde, FALSE zurückliefern, so dass wir die // Anwendung verlassen, anstatt das Nachrichtensystem der Anwendung zu starten. return FALSE;und ändere in CTest123Dlg* dlg=new CTest123Dlg; dlg->Create(IDD_TEST123_DIALOG); m_pMainWnd = dlg; dlg->ShowWindow(SW_SHOW); // Wenn das Fenster NICHT angezeigt werden soll diese Zeile weglassen return TRUE; // Wichtig da sonst das Nachrichtensystem nicht gestartet wird und die Anwendung sich sofort beendet3. Da wir jetzt ein nicht-Modalen Dialog haben müssen wir noch folgende Änderungen in der Dialogklasse vornehmen 3.1 Überschreiben von OnCancel (ggf. mit OnOK genauso verfahren) void CTest123Dlg::OnCancel() { DestroyWindow(); // Nicht EndDialog bzw. CDialog::OnCancel aufrufen }3.2 Virtuelle Funktion PostNcDestroy hinzufügen void CTest123Dlg::PostNcDestroy() { PostQuitMessage(0); delete this; }Das wars schon... 
 
- 
					
					
					
					
 Ich packs mal in die FAQ