複製鏈接
請複製以下鏈接發送給好友

模態對話框

鎖定
模態對話框(Modal Dialogue Box,又叫做模式對話框),是指在用户想要對對話框以外的應用程序進行操作時,必須首先對該對話框進行響應。如單擊【確定】或【取消】按鈕等將該對話框關閉。一般來説,Windows應用程序中,對話框分為模態對話框和非模態對話框兩種。二者的區別在於當對話框打開時,是否允許用户進行其他對象的操作。
中文名
模態對話框
外文名
Modal Dialogue Box
別    名
模式對話框
類    別
編程開發

模態對話框主要區別

模態對話框壟斷了用户的輸入。當一個模態對話框打開時,用户只能與該對話框進行交互,而其他用户界面對象收不到輸入信息。模態對話框下,用户需要操作目標對話框就必須先操作模態對話框。
模態對話框的處理過程 模態對話框的處理過程
非模態對話框(Nonmodal Dialogue Box,又叫做無模式對話框),與模態對話框不同,當用户打開非模態對話框時,依然可以操作其他窗口。

模態對話框建立模態對話框

1.選擇File/New/MFC AppWizard[exe],Project name為Test,單擊OK.
2.選擇Single document,單擊Finish.
3.選擇左側Workspace/ResourceView,在Dialog上單擊右鍵,選擇Insert Dialog,默認名字為IDD_DIALOG1.
4.雙擊右側工作區中的對話框,彈出一對話框Adding a Class,默認選擇Create a new class,單擊OK.
5.在對話框New Class中,在Name中填入CDialogproty,Base class選擇缺省名字CDialog,單擊OK.在MFC ClassWizard 上選擇OK.
6.選擇左側Workspace/ClassView,雙擊CTestView
#include "Dialogproty.h"
class CTestView : public CView
{protected: // create from serialization only}
7.選擇左側Workspace/ResourceView/Menu,雙擊IDR_MIANFRAME,在右側工作區上方,"幫助(H)"後雙擊,彈出對話框Menu Item Properties,點擊General/Pop-up,選為非選擇狀態,在ID內輸入IDR_TEST,Caption中輸入Test,關閉對話框Menu Item Properties,
8.在按鈕Test上點擊右鍵,選擇ClassWizard...,在Messages中選擇COMMAND,點擊Add Function...,彈出對話框Add Member Function,點擊OK,選擇Edit Code.
9.在以下函數中添加代碼
void CTestView::OnTest()
{
// TODO: Add your command handler code here
CDialogproty dlg;
dlg.DoModal();
}
10.編譯,運行。點擊菜單按鈕Test,彈出對話框,點擊OK!完成!