关于MFC模态对话框dlg.DoModal()返回-1的可能原因
CDialog::DoModal()函数的原型为:virtual INT_PTR DoModal();
DoModal的返回值:整数值,指定了传递给CDialog::EndDialog(该函数用于关闭对话框)的nResult参数值。如果函数不能创建对话框,则返回-1;如果出现其它错误,则返回IDABORT。
- 父窗口HWND无效 。
- 存在无效的对话框资源ID。
- 使用没有注册的的自定义控件,找到此控件删除能打开说明为此原因。
- 对话框的某些控件创建失败:
RICHEDIT,要加上AfxInitRichEdit(); - 添加AFX_MANAGE_STATE(AfxGetStaticModuleState());表示使用当前库内资源。