请问:这两种给文本框赋值的方法有什么不一样吗?

luckyker 2002-02-06 11:00:09
myedit2设为CString型时:
void CDialog1::OnOK()
{
CDialog2 mydia2;
     mydia2.myedit2=myedit1;
mydia2.DoModal ();
CDialog::OnOK();
}
可myedit1设为CEdit型时:
void CDialog1::OnOK()
{
CDialog2 mydia2;
mydia2.Create (IDD_DIALOG2,this);
mydia2.m_myedit2.SetWindowText(m_myedit1);
UpdateData(false);
CDialog::OnOK();
}
运行时就会出错:Debug Assertion Failed!
为什么呢?还是在一个类中为另一个类的变量赋值的问题,还没有解决
谢谢指教

...全文
132 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
luckyker 2002-02-06
  • 打赏
  • 举报
回复
好象这不是用哪个函数的问题吧
我本来是想给列表框中添加字符串用的,可是用这种在别的类中调用的方法也是没有结果,为什么呢?
只要是在本类中给其它类的函数赋值就会有问题,
可是给文本框直接赋字符型值就可以了,如第一种方法,为什么呢?
若在对话框1中,用这种方法给另一个文本框赋值也会出问题:

CDialog1 mydia;
mydia.m_edit.SetWindowText (m_myedit1);

mydia.DoModal();
但用mydia.m_edit=m_myedit1就不会出错了,相应的函数类型我都改过了,因为编译通过了。
luckyker 2002-02-06
  • 打赏
  • 举报
回复
可是如果在自己的类中这样赋值是没有问题的,文本框内容也可以正常显示呀
如:m_myedit2.SetWindowText("thanks");
若给其它类的变量赋值就会出问题呀
为什么呢?请给我讲一下,行吗?谢谢
ynyn 2002-02-06
  • 打赏
  • 举报
回复
第二种方法应该用SetDlgItemText()
luckyker 2002-02-06
  • 打赏
  • 举报
回复
m_myedit1是CString型的,对不起,写错了,
第二种方法是将m_myedit2设为CEdit型 

我是初学VC嘛,而且也是第一次编辑,所以没什么讲究,也很乱,先明白就行吧,多包涵吧
谢谢。
帮帮忙吧,这个问题两天了还是没解决:(
freecutelei 2002-02-06
  • 打赏
  • 举报
回复
你的程序写的太花眼。
ynyn 2002-02-06
  • 打赏
  • 举报
回复
mydia2.m_myedit2.SetWindowText(m_myedit1);
~~~~~~~~~这是CEdit呀,不是CString,你想把什么东西弄进去?先GetDlgItemText()还差不多
luckyker 2002-02-06
  • 打赏
  • 举报
回复
第一种方法是没有出错的,可是换成第二种,编译通过,运行就出错了

谢谢大家帮助。

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧