Windows對話方塊分為兩類:模態對話方塊和非模態對話方塊。
模態對話方塊,當它彈出後,應用程式其他視窗將不再接受使用者輸入,只有該對話方塊響應使用者輸入,在對它進行相應操作退出後,其他窗口才能繼續與使用者互動。
非模態對話方塊則是,它彈出後,本程式其他視窗仍能響應使用者輸入。非模態對話方塊一般用來顯示提示資訊等。
下面通過一個例子來加深非模態對話方塊的理解
工具/原料
VS2012+win7
方法/步驟
首先建立MFC應用程式,在專案下面的資源檢視中找到對話方塊資源,然後如下圖右鍵,選擇插入對話方塊
然後選中新插入的對話方塊,在軟體的右邊有屬性對話方塊,點選修改我們新建對話方塊的ID和標題名
然後將新建的對話方塊上加一些控制元件如下圖中所示,其它採用預設設定即可
選中該對話方塊,右擊,選擇新增類,類名CTipDlg,然後採用預設設定點選完成
在工程中會新生成一個庫檔案和一個CPP原始檔,如下圖
在主庫檔案中包含剛新建的庫檔案(標頭檔案),然後宣告一個解構函式
當按計算這個按鈕時彈出我們剛新建的非模態對話方塊,下面是在計算按鈕訊息下的程式碼,如下圖中所示
在新建對話方塊新生成的CPP檔案中實現我們定義的解構函式,釋放模態對話方塊
上面所有完成後下面是程式的執行結果,點選計算按鈕,上面是我們新建的非模態對話方塊
該非模態對話方塊可以拖動,模態對話方塊不能拖動,它彈出後,本程式其他視窗仍能響應使用者輸入