subject_53824.htm

来自「vc」· HTM 代码 · 共 18 行

HTM
18
字号
<p>
序号:53824 发表者:eric 发表日期:2003-09-23 13:53:00
<br>主题:对话框的疑问?
<br>内容:生成无模式对话框时,声明其对象必须用指针吗?<BR>用普通变量不行,为什么?<BR><BR>如下:<BR>CSaveHorDlg dlg(this);<BR><BR>if(dlg.GetSafeHwnd()==NULL)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dlg.Create(IDD_HOR,this);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dlg.ShowWindow(SW_SHOW);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dlg.ShowWindow(SW_SHOW);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dlg.SetFocus();<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR>对话框显示不出来,只闪了一下。<BR>而<BR>CSaveHorDlg *m_pHorDlg=new CSaveHorDlg(this);<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(m_pHorDlg-&gt;GetSafeHwnd()==NULL)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_pHorDlg-&gt;Create(IDD_HOR,this);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_pHorDlg-&gt;ShowWindow(SW_SHOW);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_pHorDlg-&gt;ShowWindow(SW_SHOW);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_pHorDlg-&gt;SetFocus();<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>就可以。<BR><BR><BR>对模式对话框则无此问题!<BR><BR><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>
<font color=red>答案被接受</font><br>回复者:a dog 回复日期:2003-09-23 13:58:06
<br>内容:局部变量在栈中分配,在函数返回时就立即销毁了,NEW是在堆中分配,所以能一直有效。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:无情阁东雪 回复日期:2003-09-23 14:19:10
<br>内容:不错,一个是在栈中,一个是在堆中,这就是区别!<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 + =
减小字号Ctrl + -
显示快捷键?