非模式對話方塊的問題

2021-08-15 19:47:20 字數 437 閱讀 6545

詳細請參考這個大神的部落格

對於非模態視窗,必須過載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 ...