modaler Dialog



  • Ich erstelle den Dialog im moment so:

    //GUIView.h
    //...
    CDialog* dlg;
    //...
    
    //GUIView.cpp
    CGUIView::CGUIView()
    	: CFormView(CGUIView::IDD)
    {
    //...
    	dlg = NULL;
    //...
    }
    
    CGUIView::~CGUIView()
    {
    	DeleteDialog();
    }
    //...
    void CGUIView::OnButton() 
    {
    	if (dlg == NULL)
    	{
    		dlg = new CDialog(IDD_DIALOG,NULL);
    		dlg->Create(IDD_DIALOG,NULL);
    		dlg->ShowWindow(true);
    	}
    }
    
    void CGUIView::DeleteDialog()
    {
    	if(dlg != NULL)
    	{
    		delete dlg;
    	}
    }
    

    Das Problem an der Sache ist das ich den Dialog nur einmal aufrufen kann weil der Zeiger ja nach dem ersten aufruf nicht mehr NULL ist.
    Meine Frage:
    Wo kann ich den Zeiger jetzt wieder auf NULL setzen wenn der Dialog geschlossen wird?



  • mhmh schon gefunden

    // GUIView.cpp
    // OnButton ändern in:
    void CGUIView::OnButton() 
    {
    	if (dlg == NULL)
    	{
    		dlg = new CDialog(IDD_DIALOG,NULL);
    		dlg->Create(IDD_DIALOG,NULL);
    		dlg->ShowWindow(true);
    	}
    	else
    	{
    		if(dlg->IsWindowVisible())
    		{
    			return;
    		}
    		else
    		{
    			delete dlg;
    			dlg = NULL;
    			OnButton();
    		}
    	}
    }
    

Anmelden zum Antworten