virtual INT_PTR DoModal( ); 返回值 指定nResult 参数的值传递给CDialog::EndDialog成员函数,用于关闭对话框的 int 值。返回值为– 1,如果函数不能创建对话框中,或IDABORT,如果某个其他错误,则为;在输出窗口将包含来自GetLastError情况下的错误信息。
int nRet = -1; nRet = aboutDlg.DoModal(); // Handle the return value from DoModal switch ( nRet ) { case -1: AfxMessageBox("Dialog box could not be created!"); break; case IDABORT: // Do something break; case IDOK: // Do something break; case IDCANCEL: // Do something brea...
CDialog::DoModal Return Value: An int value that specifies the value of the nResult parameter that was passed to the CDialog::EndDialog member function, which is used to close the dialog box. The return value is–1if the function could not create the dialog box, or IDABORT if some oth...
可见,只要在对话框中调用CDialog::EndDialog()就可以结束模式循环。但结束模式循环后,还必须调用DestroyWindow()销毁对话框,这个工作在DoModal()退出前已经完成。但如果使用CDialog::Create()创建了一个非模态对话框,就不得不在直接或间接调用EndDialog()关闭对话框后,亲自调用DestroyWindow()了。 7.4.3 创建普通的...
CDialog类的DoModal方法是一个虚拟函数,其功能是在应用程序中创建并显示一个模态对话框,直到用户进行交互或者对话框被关闭。该方法的返回值是一个整数,这个值会作为参数传递给CDialog::EndDialog函数,用于指定对话框关闭时的结果代码,如nResult参数。如果对话框无法创建,DoModal将返回-1。如果遇到其他...
CDialog::DoModal 调用此成员函数以调用模式对话框,并在完成后返回对话框结果。 virtual INT_PTR DoModal(); 返回值 一个int值,指定传递给CDialog::EndDialog成员函数的 nResult参数的值,用于关闭对话框。 如果函数无法创建对话框,则返回值为 -1;如果发生了其他错误,则返回值为 IDABORT,在这种情况下,输出窗口...
从DoModal的实现可以看出,DoModal调用CreateDlgIndirect创建的是无模式对话框,MFC如何来接管和控制应用程序的消息队列,实现一个模式对话框的功能呢? CDialog调用了RunModalLoop来实现模式窗口的消息循环。RunModalLoop是CWnd的成员函数,它和相关函数的实现如下:
正常来说 CDialog::DoModal()是调用窗口的,如果需要返回值 ,通常是IDOK,判断他当前窗口是否确定了,其实msdn是最好的老师,上面都有的
一般来说模态对话框都是调用 CDialog::EndDialog(int);结束的 模板生成的OnOK();和OnCancel();分别对应EndDialog(IDOK);和EndDialog(IDCANCEL);以下是一般对话框的结束码定义,对应的含义看其英文就行了。define IDOK 1 define IDCANCEL 2 define IDABORT 3 define IDRETRY 4 define IDIG...