📄 subject_21710.htm
字号:
<p>
序号:21710 发表者:回头浪子 发表日期:2002-11-19 20:14:54
<br>主题:给看看这个简单的对话框会有什么问题好吗?
<br>内容:<BR>一个最简单的基于对话框的程序,只是在程序的InitInstance中原来的默认对话框前加了一个Login对话框。如果密码正确,则弹出主对话框,否则关闭程序。<BR>所有的程序功能均在主对话框中实现,我想建立一系列的成员函数应该问题不大。<BR><BR>我的问题是有关m_pMainWnd这个变量,我始终无法准确理解这个变量。照一些书上说的这个变量必须赋值,否则会出现错误(我没见过这个错误)。第二行若不注释掉的话,主对话框不会弹出,只是一闪而过,这个我能理解,是由于m_pMainWnd变量指向的窗口被关闭,因此应用程序结束。<BR><BR>而如果注销了第二行,那么程序看起来能够正常运行,但是如果密码错误或者在身份验证时按“取消按钮”,那么m_pMainWnd变量就没有被赋过值,我不知道这是否会存在隐患!请指教,以下是InitInstance函数中的片断。<BR><BR> CLoginDlg logindlg;<BR> //m_pMainWnd=&logindlg; //第二行<BR> int xxx=logindlg.DoModal();<BR> if (xxx==IDOK)<BR> {<BR> if (logindlg.m_LoginUsername=="jodgen" && logindlg.m_LoginPasswd=="1996")<BR> {<BR> CMainDlg maindlg;<BR> m_pMainWnd = &maindlg; //第九行<BR> int nResponse = maindlg.DoModal();<BR> if (nResponse == IDOK)<BR> {<BR> }<BR> else if (nResponse == IDCANCEL)<BR> {<BR> }<BR> }<BR> else<BR> {<BR> //弹出密码错误提示框<BR> }<BR> }<BR> else if(xxx==IDCANCEL)<BR> {<BR> }
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:啊志 回复日期:2002-11-19 20:51:39
<br>内容:我觉得如果这样:<BR> else if(xxx==IDCANCEL)<BR> {<BR> return FALSE;<BR> } <BR>返回false后程序退出了也就没有这个问题了<BR><BR>我就是这么做的,没有管m_pMainWnd ,不知道有问题吗。(觉得不会)<BR><BR>关注... ...<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:未出手的飞刀 回复日期:2002-11-20 01:09:56
<br>内容:<BR>我的方法不用去掉m_pMainWnd,你的第2个Dialog之所以一闪而过是因为残留的WM_QUIT消息。<BR><BR> if (logindlg.m_LoginUsername=="jodgen" && logindlg.m_LoginPasswd=="1996")<BR> {<BR> { //消掉残留的WM_QUIT<BR> MSG msg ;<BR><BR> ::PeekMessage(&msg,NULL,WM_QUIT,WM_QUIT,PM_REMOVE) ;<BR> }<BR><BR> CMainDlg maindlg;<BR> m_pMainWnd = &maindlg; //第九行<BR> int nResponse = maindlg.DoModal();<BR> if (nResponse == IDOK)<BR> {<BR> }<BR> else if (nResponse == IDCANCEL)<BR> {<BR> }<BR> }<BR> else<BR> {<BR> //弹出密码错误提示框<BR> }<BR><BR>////////////////////////////////////////////////////////<BR>不过话又说回来,你去掉第1个m_pMainWnd是没问题的,呵呵<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 + -