MFC 全局函数调用对话框类的资源 出现一个问题 求指教

建立了一个MFCdll的工程,添加了一个对话框资源,对话框上只放置了一个列表框控件。新建一个.CPP和.H文件,在.cpp里把创建出来对话框(模态的)后,对两个控件进行操... 建立了一个MFC dll的工程,添加了一个对话框资源,对话框上只放置了一个列表框控件。
新建一个.CPP和.H文件,在.cpp里把创建出来对话框(模态的)后,对两个控件进行操作,如下:
CMyDialog dlg;
if (dlg.DoModal()==IDOK)
{
int nSelectItem;
nSelectItem=dlg.m_combox.GetCurSel();
}
编译没问题,运行的时候出现内存错误,为什么会这样子呢?列表框里面的内容是在调用OnInitDialog的时候添加进去的。
展开
 我来答
bhtzu
2013-10-08 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4212万
展开全部
nSelectItem=dlg.m_combox.GetCurSel();

这样做是不行的,在DoModal函数返回之后,dlg类存在,但对话框窗口已经销毁了,窗口中的控件也无效了,因此m_combox.GetCurSel();会失败。
在CMyDialog类的OnOK函数中,将m_combox.GetCurSel(); 记录在类成员变量(自定义public)nSel中,然后,上面代码改成:
nSelectItem=dlg.nSel;
就可以了。
来自:求助得到的回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式