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(); } } }