📄 subject_61818.htm
字号:
<p>
序号:61818 发表者:joplus 发表日期:2003-11-22 01:12:37
<br>主题:困扰多时的问题
<br>内容:<BR> 在对话框中设置一个CButton button 和一个按钮关联。<BR><BR> 即有 DDX_Control(pDX, IDC_TEST, button);<BR><BR> 我发现,如果这个对话框是基于对话框的程序,没有任何初始化,使用<BR>button.GetCheck() 没问题。<BR><BR> 但是,如果把该对话框作为一个菜单项的响应项(DoModal()之后,GetCheck()),则出现非法操作。并且GetDlgItem()取得的句柄是0。<BR> 哪位大侠能够帮我解释一下为什么会出现这种情况?怎样解决?谢谢!
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:luo 回复日期:2003-11-22 01:35:36
<br>内容:DoModal之后窗体就不存在了,所以你后面调用的那些关于窗体的方法当然都是非法操作了,但是他的成员变量还是存在的。
<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>回复者:浪际天涯 回复日期:2003-11-22 10:01:43
<br>内容:<BLOCKQUOTE>引用“第1楼”所言<BR><Q>DoModal之后窗体就不存在了,所以你后面调用的那些关于窗体的方法当然都是非法操作了,但是他的成员变量还是存在的。</Q></BLOCKQUOTE><BR>1楼的说的对,DoModal之后就无法获取到该对话框的句柄了,如何用GetDlgItem呢,但对话框的对象或指针还没有被消毁,所以可以通过它来操作它的变量<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>
回复者:joplus 回复日期:2003-11-22 23:10:11
<br>内容:<BR>比如这个对话框叫 CTestDlg,我声明CTestDlg cTest;<BR><BR> 我使用: int result=cTest.button.GetCheck();<BR><BR> cTest.Domodal(); //这样也非法操作。<BR><BR><BR> 现在我想通过 button.GetCheck()来检查按钮是否被选上,能够用什么方法?<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>
回复者:红苹果 回复日期:2003-11-23 11:06:46
<br>内容:方法1. 重载OnOK函数,在该函数中检查,并将结果用一个CTestDlg的类变量保存。<BR>void CTestDlg::OnOK() <BR>{<BR> m_bCheck = button.GetCheck();<BR> CDialog::OnOK();<BR>}<BR><BR>方法2. 在CTestDlg中给button定义一个值型(value)成员变量(假设为m_bCheck),在button的Click的事件处理函数中设置该变量。<BR><BR>最后:<BR>if( cTest.Domodal()==IDOK )<BR>{<BR> // 判断该变量的值<BR> if( cTest.m_bCheck )<BR> ...<BR>}<BR><BR>如果是CheckBox、RadioBox按钮,可以直接在ClassWizard中添加值型(value)成员变量,MFC会给你维护该变量的值。
<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-11-23 20:00:22
<br>内容:直接关联一BOOL变量不就得了么…………
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:luo 回复日期:2003-11-24 08:23:40
<br>内容:在DoModal之前窗体还没有创建,怎么能用关于窗体的方法呢?
<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 + -