Eigene MessageBox :-)



  • Hi,
    Ich habe versucht mir eine eigene MessageBox zu basteln. Das ganze schaut nun so aus: Im Hauptprogramm steht diese Zeile zur Erstellung der Box.

    L_UserDialog * MyDialog1 = new L_UserDialog("Dokument1 wurde noch nicht gespeichtert.\n\nSoll dies noch erledigt werden?", S"Programm beenden?", S"&Ja", S"&Nein", S"A&bbrechen");
    			 MyDialog1->ShowDialog();
    

    Die Fensterklasse selbst habe ich in eine eigene Header-Datei ausgelagert. – Soweit klappt das Ganze prima. ABER: Jetzt würde ich ganz gerne wissen, welche Auswahl der Benutzer getroffen hat und dieses Wissen mit einem Rückgabewert an das Hauptprogramm zurückgeben. Halt ganz wie bei einer richtigen MessageBox.
    Wie geht so etwas?



  • hast du schon die suchfunktion benutzt, oder selbst geschaut wie das gehen könnte?

    ich glaube nicht...

    ich gebe dir mal einen tipp.
    wenn du eine eigene messagebox erstellst und auch das verhalten normaler messageboxen nachamen möchtest versuch es mit DoModal()

    hier etwas aus der msdn:

    void CTstApp::OnAppAbout()
    {
       // Construct the dialog box passing the 
       // ID of the dialog template resource
       CDialog aboutDlg(IDD_ABOUTBOX);
    
       // Create and show the dialog box
       INT_PTR nRet = -1;
       nRet = aboutDlg.DoModal();
    
       // Handle the return value from DoModal
       switch ( nRet )
       {
       case -1: 
          AfxMessageBox("Dialog box could not be created!");
          break;
       case IDABORT:
          // Do something
          break;
       case IDOK:
          // Do something
          break;
       case IDCANCEL:
          // Do something
          break;
       default:
          // Do something
          break;
       };
    }
    

    denke das müsste dich weiterbringen...



  • Ja, super! Hat geholfen. 👍



  • nichts zu danken. findet man in der msdn.

    das nächste mal, dort einfach suchen...
    ist ganz trivial. z.b. nach CDialog::DoModal schauen...

    nur so ein tipp


Anmelden zum Antworten