nicht modaler Dialog



  • Hallo,

    ich habe ein Problem mit meinem nicht modalen Dialog.

    Zum Hintergrund: Ich habe einen Haupt-Dialog, in dem der Benutzer verschiedene
    Einstellungen auswählt, dann auf einen Button drückt und anschließend
    öffnet sich ein weiterer Dialog mit den Ergebnissen ( In einer TreeViewControl).
    Dieser zweite Dialog flackert aber nur kurz auf und ist dann sofort wieder weg.

    Ich habe den Ergebnis-Dialog folgendermaßen erzeugt (in einer Methode des
    Haupt-Dialoges:

    //neuen dialog erzeugen
       dcResultDialog rdialog;
       rdialog.Create( IDD_RESULT_DIALOG );
       rdialog.ShowWindow( SW_SHOWNORMAL );
    
       //hier wird die Wurzel der Liste erzeugt
       rdialog.fillList();
    
       while( 0 <= ( m_listCtrl.GetCount()-1-i ) )
       {          
    
          .....
    
          // hier werden weitere einträge in den ergebnis dialog eingetragen
          filefinder.findFiles( m_results,
                                  sysFile,
                                  recurse,
                                  rdialog );
          ++i;
       }
    

    Kann mir jemand sagen, wie ich mein Problem beheben kann? Bzw. wo das Problem liegen könnte?

    PS: Zu Anfang war der Ergebnis-Dialog modal, was ich dann aber abgeändert habe...
    Danke,

    Gruß Amalthea



  • void func()
    {
       // neuen dialog erzeugen - auf dem stack
       dcResultDialog rdialog;
       rdialog.Create( IDD_RESULT_DIALOG );
       rdialog.ShowWindow( SW_SHOWNORMAL );
    
       //hier wird die Wurzel der Liste erzeugt
       rdialog.fillList();
    
       while( 0 <= ( m_listCtrl.GetCount()-1-i ) )
       {          
    
          .....
    
          // hier werden weitere einträge in den ergebnis dialog eingetragen
          filefinder.findFiles( m_results,
                                  sysFile,
                                  recurse,
                                  rdialog );
          ++i;
       }
    // stack wird abgebaut - dialog futsch
    }
    


  • Hallo,

    danke für den Tipp.

    Ich hab den Dialog jetzt mit

    dcResultDialog* rdialog = new dcResultDialog;
    

    erzeugt (und beim Beenden auch wieder mit delete gelöscht). So gehts 🙂

    Gruß, Amalthea



  • Und wann machst du das delete???
    Sonst ist das Ding ja noch ewig im Speicher.



  • Hallo,

    ich mach das delete, wenn der User den Button OK drückt und sich der Dialog damit schließt.

    Gruß,
    Amalthea


Anmelden zum Antworten