⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_23621.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:23621 发表者:lijing2001 发表日期:2002-12-05 14:49:48
<br>主题:求救!各位大侠!
<br>内容:void CMy01View::OnLButtonDown()<BR>{<BR>&nbsp;&nbsp; CMy01dlg dlg;<BR>&nbsp;&nbsp; dlg.DoModal();<BR>&nbsp;&nbsp; dlg.m_Combo.Addstring("10");/m_Combo是对话框中的组合框的 <BR>&nbsp;&nbsp; CView::OnLButtonDown();&nbsp;&nbsp;&nbsp;&nbsp; /成员变量<BR>}<BR>我敢肯定是dlg.m_Combo.Addstring("10")这里错了,因为我有<BR>void CMy01View::OnLButtonDown()<BR>{<BR>&nbsp;&nbsp; CMy01dlg* dlg=new CMy01dlg;<BR>&nbsp;&nbsp; dlg-&gt;Creat(IDD_DIALOG,this); /IDD_DIALOG是对话框的ID;<BR>&nbsp;&nbsp; dlg-&gt;ShowWindown(SW_SHOW);<BR>&nbsp;&nbsp; dlg-&gt;m_Combo.Addstring("10");/m_Combo是对话框中的组合框的 <BR>&nbsp;&nbsp; CView::OnLButtonDown();&nbsp;&nbsp;&nbsp;&nbsp; /成员变量;<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>
回复者:凯凯 回复日期:2002-12-05 14:54:56
<br>内容:&nbsp;&nbsp; CMy01dlg dlg;<BR>&nbsp;&nbsp; dlg.DoModal();<BR>&nbsp;&nbsp; dlg.m_Combo.Addstring("10");/m_Combo是对话框中的组合框的 <BR>&nbsp;&nbsp; CView::OnLButtonDown();&nbsp;&nbsp;&nbsp;&nbsp; /成员变量<BR><BR>dlg.DoModal();后对话框和它上面的控件全都销毁了,再来dlg.m_Combo.Addstring("10");肯定就出错了。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:来去无踪 回复日期:2002-12-05 14:57:02
<br>内容:将"dlg.m_Combo.Addstring("10");"加到你的my01dlg的OnOk中去,因为在上面的程序中,你的对话框都已经销毁了,你还给combobox加东东,不错才怪!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:lijing2001 回复日期:2002-12-05 15:08:55
<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>
回复者:lijing2001 回复日期:2002-12-05 20:10:01
<br>内容:两位老兄!所有的对象是在OnOK()或OnCanCel()被调用后才被催毁的吧?
<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-12-05 21:50:21
<br>内容:<BR>/////////////////////////////////<BR>对话框的DoModal()函数是不是摧毁了它前面的对象?既然摧毁了,我怎么可以调用MessageBox(dlg.m_Text)(m_Text)是我在对话框中声明的,又为什么还能调用它的OnOK()?<BR>/////////////////////////////<BR>void CMy01View::OnLButtonDown()<BR>{<BR>&nbsp;&nbsp; CMy01dlg dlg;<BR>&nbsp;&nbsp; dlg.DoModal();<BR>&nbsp;&nbsp; dlg.m_Combo.Addstring("10");/m_Combo是对话框中的组合框的 <BR>&nbsp;&nbsp; CView::OnLButtonDown();&nbsp;&nbsp;&nbsp;&nbsp; /成员变量<BR>}<BR>///////////////////////////////<BR><BR><BR>对象没有被摧毁!<BR>dlg.m_Combo.Addstring("10")出错并不是因为对象被推毁,而是因为dlg.m_Combo不再是窗口。<BR>dlg.m_Text和dlg.m_Combo都还在,而dlg.m_Combo在OnOK()后不再是窗口。你仍然可以引用dlg.m_Text(dlg.m_Text是CString的对象)。<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>
回复者:凯凯 回复日期:2002-12-06 13:13:30
<br>内容:注意,俺说的不是销毁对象,而是销毁了相应的窗口和里面的控件。<BR><BR>&nbsp;&nbsp; dlg.DoModal();<BR>&nbsp;&nbsp; dlg.m_Combo.Addstring("10");/m_Combo是对话框中的组合框的<BR><BR>后面一句对对话框中的combobox控件加item,而这时这个控件已经销毁了(虽然它的C++对象还存在),所以自然出错了。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:未出手的飞刀 回复日期:2002-12-06 15:15:23
<br>内容:<BR>对,但是lijing2001他理解错了。<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>
回复者:lijing2001 回复日期:2002-12-06 15:47:26
<br>内容:而是因为dlg.m_Combo不再是窗口?<BR>这句话是什么意思?按理说在调用DoModal()之后,窗体正是初始化完成之时,调用dlg.m_Combo.Addstring("10")应该行呀!<BR>能讲详细点吗?<BR>还有,dlg.m_Text在CDialog::OnOK()之后还可以用呀!在CDialog::OnOK()后dlg对象会不会被摧毁吗?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:未出手的飞刀 回复日期:2002-12-06 16:51:21
<br>内容:<BR>{<BR>&nbsp;&nbsp; CDlg dlg ;<BR>&nbsp;&nbsp; [ CDlg::CDlg()被调用 ]<BR><BR>&nbsp;&nbsp; dlg.DoModal() ;<BR>&nbsp;&nbsp; [CDlg::OnInitDialog()被调用,所有控件窗口生成,对话框弹出]<BR>&nbsp;&nbsp; ... 某时刻你将会点击“确定”或“取消” ...<BR><BR>&nbsp;&nbsp; [OnOK()被调用,默认所有控件窗口被推毁,对话框关闭]<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp; ... 在这里,dlg和dlg中的对象仍然存在,可是所有与窗口有关的调用将失败<BR>}<BR>... 在这里,dlg和dlg中的对象被推毁
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:凯凯 回复日期:2002-12-06 21:20:50
<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 + -