在MFC中如何建立非模態對話方塊?

Windows對話方塊分為兩類:模態對話方塊和非模態對話方塊。

模態對話方塊,當它彈出後,應用程式其他視窗將不再接受使用者輸入,只有該對話方塊響應使用者輸入,在對它進行相應操作退出後,其他窗口才能繼續與使用者互動。

非模態對話方塊則是,它彈出後,本程式其他視窗仍能響應使用者輸入。非模態對話方塊一般用來顯示提示資訊等。

下面通過一個例子來加深非模態對話方塊的理解

工具/原料

VS2012+win7

方法/步驟

首先建立MFC應用程式,在專案下面的資源檢視中找到對話方塊資源,然後如下圖右鍵,選擇插入對話方塊

在MFC中如何建立非模態對話方塊

然後選中新插入的對話方塊,在軟體的右邊有屬性對話方塊,點選修改我們新建對話方塊的ID和標題名

在MFC中如何建立非模態對話方塊

然後將新建的對話方塊上加一些控制元件如下圖中所示,其它採用預設設定即可

在MFC中如何建立非模態對話方塊

選中該對話方塊,右擊,選擇新增類,類名CTipDlg,然後採用預設設定點選完成

在MFC中如何建立非模態對話方塊

在工程中會新生成一個庫檔案和一個CPP原始檔,如下圖

在MFC中如何建立非模態對話方塊

在主庫檔案中包含剛新建的庫檔案(標頭檔案),然後宣告一個解構函式

在MFC中如何建立非模態對話方塊

當按計算這個按鈕時彈出我們剛新建的非模態對話方塊,下面是在計算按鈕訊息下的程式碼,如下圖中所示

在MFC中如何建立非模態對話方塊

在新建對話方塊新生成的CPP檔案中實現我們定義的解構函式,釋放模態對話方塊

在MFC中如何建立非模態對話方塊

上面所有完成後下面是程式的執行結果,點選計算按鈕,上面是我們新建的非模態對話方塊

在MFC中如何建立非模態對話方塊

該非模態對話方塊可以拖動,模態對話方塊不能拖動,它彈出後,本程式其他視窗仍能響應使用者輸入

在MFC中如何建立非模態對話方塊

相關問題答案