| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1513 人关注过本帖
标题:[求助]关于控件变量的调用(添加了一些个人观点)
取消只看楼主 加入收藏
jbwang
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2007-5-22
收藏
 问题点数:0 回复次数:3 
[求助]关于控件变量的调用(添加了一些个人观点)
if(IDOK==dlg.DoModal())
{
UpdateData();
CString art[5];
for(int j=0;j<5;j++)
if(i<dlg.m_artlist.GetCount())
{
dlg.m_artlist.GetText(1,art[j]);
}
else
art[j]=_T("");
}
不好意思,我说错了。问题是这样的:我自定义对话框类CMacthInfo dlg; 而m_artlist是该对话框类的CListBox的控件变量。我在CView类中调用该类,在执行时发现上面代码中的m_artlist时,总是出错,但是编译时没有报错。我用单步跟踪,发现上面代码中的dlg.m_artlist是空的,但是dlg的其他值变量都是我输入的值。根据错误指示我在include中找出这个语句:
_AFXWIN_INLINE int CListBox::GetCount() const
{ ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_GETCOUNT, 0, 0); }

[此贴子已经被作者于2007-11-16 10:54:25编辑过]

搜索更多相关主题的帖子: 变量 控件 观点 
2007-11-15 23:20
jbwang
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2007-5-22
收藏
得分:0 

今天突然有个想法,大家看看是否准确。

IDOK==dlg.DoModal()这一句,是显示对话框,当用户更改完对话框内容,并点击“确定”后,对话框就关闭了,并且更新对话框中变量的值。所以值变量的值被更新并保留(因为对话框的实例没有销毁,所以值变量继续存在),但是对于控件变量,因为对话框已经关闭,所以对话框的句柄已经都是空了,当然控件变量也不存在了,无法对对话框中的控件进行操作了。

是不是这样的,大家看看!

2007-11-16 10:53
jbwang
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2007-5-22
收藏
得分:0 

我不知道DoModal()自身是怎么实现的。但是MSDN上说:
If the user clicks one of the pushbuttons in the dialog box, such as OK or Cancel, a message-handler member function, such as OnOK or OnCancel, is called to attempt to close the dialog box. The default OnOK member function will validate and update the dialog-box data and close the dialog box with result IDOK, and the default OnCancel member function will close the dialog box with result IDCANCEL without validating or updating the dialog-box data. You can override these message-handler functions to alter their behavior.
调用DoModal()是要关闭窗体。所以我就改成zzj233说的那样,把代码放在CMacthInfo::OnOK()中了。

但是还是想得到这些控件变量,所以想改成非模式的对话框,现在不知道在填写完对话框后,对话框类怎么通知另一个类自己已经填写完成了?
可以发送消息吗?

2007-11-16 23:12
jbwang
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2007-5-22
收藏
得分:0 

嗯,好!我试试。谢谢你的解答。

2007-11-16 23:55
快速回复:[求助]关于控件变量的调用(添加了一些个人观点)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016428 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved