对于模态窗口,默认有一个确认和一个返回按钮,而点击它们的返回值是IDOK和IDCANCEL。
虽然这两个按钮的ID是IDOK和IDCANCEL,但是这与它们的返回值没有关系,而是因为它们调用了OnOk()和OnCancel()方法,查看它的事件处理代码,发现分别调用了OnOk()和OnCancel()方法
如果想要自定义返回值,需要调用EndDialog()方法,它会结束模态窗口,并且将参数作为返回值
模态窗口中
if(...){
EndDialog(1);
}else{
EndDialog(0);
}
测试
MyWindow myWindow;
int ret = myWindow.DoModal();
if (1 == ret)
{
MessageBox(L"返回1");
}else if (0 == ret){
MessageBox(L"返回0");
}else if (IDCANCEL == ret){
MessageBox(L"取消输入");
}