詳細請參考這個大神的部落格
對於非模態視窗,必須過載oncancel函式,在函式中呼叫destroywindows()方法,且不能呼叫基類的函式。因為基類函式中呼叫的是 enddialog()方法。(因為enddialog是關閉模態對話方塊時呼叫的)而onclose()也會呼叫oncancel()方法。另外想通過onok關閉對話方塊,也必須同樣處理,不能直接用預設方法
非模態對話方塊銷毀過程onclose()->oncancel()->destroywindow()->ondestroy()->onncdestroy()->postncdestroy()
所以得過載oncancel()和postncdestroy()
void c***dlg::oncancel()
void c***dlg::postncdestroy()
非模式對話方塊的問題
對於非模態視窗,必須過載oncancel函式,在函式中呼叫destroywindows 方法,且不能呼叫基類的函式。因為基類函式中呼叫的是 enddialog 方法。因為enddialog是關閉模態對話方塊時呼叫的 而onclose 也會呼叫oncancel 方法。另外想通過onok關閉對話方塊,也...
MFC 對話方塊程式 模式對話方塊與非模式對話方塊
一 根據主視窗型別,mfc軟體工程可以分為以下幾種架構模型 例如 記事本和畫筆等。2 mdi multiple document inte ce 多文件介面,乙個主框架視窗下可以同時編輯多份文件。例如 vc 6.0,photoshop等軟體。3 基於對話方塊的軟體模型 主視窗是通過資源管理器,在對話...
彈出模式對話方塊和彈出非模式對話方塊
非模式對話方塊 clistlink m plistlink null ssn return pishowlistdialog in ssn object id listtype,in ssn object id listdialogid m plistlink showwindow sw show ...