------------------------------------------------2016.09.12------------------------------------------------
模態(Modal)對話框和非模態(Modeless)對話框
-----------------------------------------------
模態對話框顯示時程序暫停執行,關閉該模態對話框時后,才能繼續執行程序中其他任務。
非模態對話框顯示時,允許轉而執行程序中的其他任務,而不用關閉該對話框。
在MFC中,對資源的操作通常都是通過一個與資源相關的類來完成的。
DoDataExchange,主要用來完成對話框數據的交換和校驗。
創建模態對話框調用CDialog類的成員函數:DoModal,該函數的功能即創建并顯示一個模態對話框,其返回值作為EndDialog
的參數,EndDialog的功能即是關閉對話框。
創建非模態對話框,需要利用CDialog類的Create成員函數。
Create函數聲明:BOOL Create(LPCTSTR lpszTemplateName,CWnd* pParentWnd = NULL)
BOOL Create(UINT nIDTemplate,CWnd* pParentWnd = NULL)
當利用Create函數創建非模態對話框時,還需要調用ShowWindow函數將這個對話框顯示出來。
對於非模態對話框的生命週期,有兩種解決辦法:
一種就是把這對話框對象定義為視類的成員變量;
另一種方式是將它定義為指針,在堆上分配內存:
->該指針的成員變量是一個局部對象,其生命週期一旦結束,程序就無法找到它指