一般来说模态对话框都是调用 CDialog::EndDialog(int);结束的
模板生成的OnOK();和OnCancel();分别对应EndDialog(IDOK);和EndDialog(IDCANCEL);
以下是一般对话框的结束码定义:
#define IDOK 1 用户单击OK按钮中止对话框的返回值
#define IDCANCEL 2 单击CANCEL按钮中止对话框的返回值
#define IDABORT 3 对话框异常中止时返回值
#define IDRETRY 4 用户单击重试按钮中止对话框的返回值
#define IDIGNORE 5 用户单击忽略按钮中止对话框的返回值
#define IDYES 6
#define IDNO 7
#if(WINVER >= 0x0400)
#define IDCLOSE 8 用户单击关闭(右上角红X)按钮中止对话框的返回值
#define IDHELP 9 用户单击帮助按钮中止对话框的返回值
#endif /* WINVER >= 0x0400 */
你也可以自己定义结束码,然后由调用对话框的函数去判断结果(如下:)
IDC_MY_BTN //对话框上面 自定义按钮的ID
void CMyDlg::OnMyBtn() IDC_MY_BTN 按钮单击响应事件
{
EndDialog(IDC_MY_BTN ); //返回值 就是 IDC_MY_BTN了
}
使用方法:
CMyDlg dlg;
if(dlg.DoModal() == IDC_MY_BTN)
MessageBox("IDC_MY_BTN");