Nonmodal Dialog doppeltes Öffnen verhindern



  • Ich rufe einen nichtmodalen Dialog aus meinem Hauptdialog auf.
    Nun möchte ich prüfen ob der nichtmodale bereits offen ist,
    damit er nicht nochmals geöffnet wird.

    Das versuche ich so:

    if(CWnd::FindWindow(NULL,"testdialog 2")!=NULL){
    MessageBox("ist bereits offen");
    	}else{
    MessageBox("ist noch nicht / nicht mehr offen");
    Pro* m_pMyDlgPtr;
    
        m_pMyDlgPtr = new Pro;
        m_pMyDlgPtr->Create(IDD_DIALOG2);
        m_pMyDlgPtr->ShowWindow(SW_SHOWNORMAL);
    
    	}
    

    Es wird erkannt dass der Dialog beim ersten anklicken noch nicht offen ist.
    Der Dialog wird dann geöffnet. Schließe ich jetzt den nichtmodalen Dialog
    und klicke dann erneut auf den Button um ihn wieder zu öffnen, dann sagt
    mir mein Programm, dass der Dialog noch offen ist 🙄

    Ich dachte durch FindWindow würde meine Anwendung mitbekommen, dass
    der nichtmodale schon geschlossen ist und ihn wieder öffnen ?



  • Das gleiche Problem hatte ich gestern auch:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-121353.html
    so hab ichs dann gelöst



  • Danke, denke jetzt habe ich es 👍


Anmelden zum Antworten