📄 subject_21511.htm
字号:
<p>
序号:21511 发表者:回头浪子 发表日期:2002-11-18 12:33:45
<br>主题:有关基于对话框的应用程序中的m_pMainWnd的疑问
<br>内容:一个简单的基于对话框的应用程序在应用程序的Initinstance函数中都有这么一段:<BR><BR>CVisionDlg dlg; <BR>m_pMainWnd = &dlg; //*********这句 <BR>int nResponse = dlg.DoModal(); <BR>if (nResponse == IDOK) <BR>{ <BR>// TODO: Place code here to handle when the dialog is <BR>// dismissed with OK <BR>} <BR>else if (nResponse == IDCANCEL) <BR>{ <BR>// TODO: Place code here to handle when the dialog is <BR>// dismissed with Cancel <BR>} <BR><BR><BR>我在书上看到:<BR><BR>类CWinThread的数据成员m_pMainWnd有一个有用的特征,如果由该成员所引用的窗口被关闭的话,MFC库将自动的终止CWinThread对象所代表的线程。这样,如果我们将指向dlg的指针赋予了成员变量m_pMainWnd,那么无论我们单击了确定还是取消,应用程序的主线程都将自动终止,之后的代码都不会执行。<BR><BR>那如果我希望在单击确定按钮后,程序仍旧继续,比如一个身份认证对话框,在输入身份并按确定后应该验证身份,如果通过的话,则需要打开一个新的对话框来进行相关的工作。<BR><BR>书上说将这行注释掉就可以,事实是确实可以打开另一个对话框,但是前面有位朋友说:<BR><BR>每个MFC工程都有一个APP类的对象,m_pMainWnd是这个类的一个成员,指向主窗口,就这么简单。你删掉它,暂时没关系,如果APP类的某个函数要用到这个成员时,就会有问题了。 <BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:目不识丁 回复日期:2002-11-18 22:00:31
<br>内容:你新加一个确认对话框在原来对话框之前不就行了,原来的对话框进行相关的操作
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -