非模態對話方塊 MFC

2021-06-04 19:01:00 字數 1004 閱讀 2193

cvolsetdlg*m_pvoldlg=null;

m_pvoldlg=newcvolsetdlg;

m_pvoldlg->create(idd_dlg_vol);

m_pvoldlg->showwindow(sw_show);         

過載oncancel函式

void cxx::oncancel()

//todo: add your specialized code here and/or call the base class

cdialog::oncancel();

遮蔽掉cdialog::oncancel();,並新增

destroywindow();

如下:void cxx::oncancel()

//todo: add your specialized code here and/or call the base class

destroywindow();

//cdialog::oncancel();

新增訊息wm_destroy

在響應函式中新增要釋放資源的操作:

void cxx::ondestroy()

//release resourse ...

cdialog::ondestroy();

過載postncdestroy函式,新增delete this;

void cxx::postncdestroy()

//todo: add your specialized code here and/or call the base class

deletethis;

cdialog::postncdestroy();   

因為非模態對話方塊一般是通過new來建立的;

cxx *pxxdlg=new cxx(); 

所以在釋放資源時必須要用delete來刪除

如果是在外部刪除的,那麼不需要在cxx::postncdestroy中新增delete this;

MFC 非模態對話方塊

非模態對話方塊 用mfc可以建立非模態的對話方塊,只是建立方式不同,模態對話方塊用 dlg.domodel 呼叫,而非模態對話方塊要用create函式建立呼叫。假設idd test dlg為已經定義的對話方塊資源的id號 ctestdlg dlg new ctestdlg dlg create id...

MFC模態與非模態對話方塊

1.1模態對話方塊 model dialog box 當模態對話方塊顯示時,程式會暫停執行,直到關閉這個模態對話方塊之後,才能執行程式中的其他任務。1.2非模態對話方塊 modeless dialog box 當非模態對話方塊顯示時,執行轉而執行程式中的其他任務,而不用關閉這個對話方塊。2.1模態對...

MFC模態與非模態對話方塊

1.1模態對話方塊 model dialog box 當模態對話方塊顯示時,程式會暫停執行,直到關閉這個模態對話方塊之後,才能執行程式中的其他任務。1.2非模態對話方塊 modeless dialog box 當非模態對話方塊顯示時,執行轉而執行程式中的其他任務,而不用關閉這個對話方塊。2.1模態對...