0%

MFC关闭模态对话框

  1. 方法1
  2. 方法2
  3. 方法3
  4. 方法4
  • VS2010
  • 对话框继承自CDialogEx
  • 添加按钮,为按钮的点击事件添加处理函数

调用:

1
2
CTestDlg dlg;
INT_PTR nResponse = dlg.DoModal();

通过DoModal()函数打开并显示模态对话框,通过返回值nResponse对比不同的退出方法。

方法1

定义

1
void CDialog::EndDialog(int nResult)

调用

1
EndDialog(0);

nResponse的值为参数nResult的值。

方法2

调用

1
AfxGetMainWnd()->SendMessage(WM_CLOSE);

WM_CLOSE的值为2,因此nResponse的值为2(相当于IDCANCEL

方法3

定义

1
void __stdcall PostQuitMessage(int nExitCode)

调用

1
PostQuitMessage(0);

不管nExitCode的值是多少,nResponse的值都为-1

方法4

定义

1
BOOL CWnd::DestroyWindow()

调用

1
DestroyWindow();

nResponse的值为-1