![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
mfc中编辑框的输出问题
是这样打算的:在对话框类中添加一个vector<CString>proVec,然后每次调出对话框时把proVec中的内容输出到对话框中的多行编辑框。我在构造函数中添加了一...
是这样打算的:在对话框类中添加一个vector<CString> proVec,然后每次调出对话框时把proVec中的内容输出到对话框中的多行编辑框。
我在构造函数中添加了一个初始化proVec的代码:
proVec.push_back(_T("I hate you"));
然后重写了DoModal函数:
int propage::DoModal()
{
vector<CString>::iterator pProPrint;
for(pProPrint=proVec.begin();pProPrint!=proVec.end();pProPrint++)
{
m_proctr.SetWindowText(*pProPrint);\\此句屏蔽后能正常运行
}
int returnval=CDialog::DoModal();
return returnval;
}
程序运行每次都出错,显示debug assertion failed
想问一下,是我把输出代码放错了地方吗,但是把CDialog::DoModal();提前还是错.还是说我应该把代码写在构造函数等其他地方?
如果这种方法不可行,能否介绍一下常用的方法?
恩恩,我大概知道错在哪里,大概是运行DoModal();后对话框就完全不能这样控制了,但是我原本的设想应该如何实验啊??
q7382168 的方法正在试,然后就卷入一堆新问题了,在OnInitiation中崩溃…… 展开
我在构造函数中添加了一个初始化proVec的代码:
proVec.push_back(_T("I hate you"));
然后重写了DoModal函数:
int propage::DoModal()
{
vector<CString>::iterator pProPrint;
for(pProPrint=proVec.begin();pProPrint!=proVec.end();pProPrint++)
{
m_proctr.SetWindowText(*pProPrint);\\此句屏蔽后能正常运行
}
int returnval=CDialog::DoModal();
return returnval;
}
程序运行每次都出错,显示debug assertion failed
想问一下,是我把输出代码放错了地方吗,但是把CDialog::DoModal();提前还是错.还是说我应该把代码写在构造函数等其他地方?
如果这种方法不可行,能否介绍一下常用的方法?
恩恩,我大概知道错在哪里,大概是运行DoModal();后对话框就完全不能这样控制了,但是我原本的设想应该如何实验啊??
q7382168 的方法正在试,然后就卷入一堆新问题了,在OnInitiation中崩溃…… 展开
2个回答
展开全部
肯定不能如此的了,因为你对话框还没创建,也就是你要设置值的控件也没有创建,怎样可以设置数据?
可用方法如下:假设对话框类是(CMyDialog)
1、在CMyDialog类中增加你那个vector成员变量,可以是公共的,也可以是私有的;
2、然后在CMyDialog创建的实例后,在调用DoModel前,设置成员变量的值
3、在CMyDialog的函数OnInitiation中,对控件赋值
可用方法如下:假设对话框类是(CMyDialog)
1、在CMyDialog类中增加你那个vector成员变量,可以是公共的,也可以是私有的;
2、然后在CMyDialog创建的实例后,在调用DoModel前,设置成员变量的值
3、在CMyDialog的函数OnInitiation中,对控件赋值
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询