Leelddd
Leelddd
采纳率0%
2015-10-09 10:49

mfc父窗口修改子窗口变量的问题

5

NewDlg dlg;
CString str("hello");
dlg.textNum.SetWindowText(str);
dlg.DoModal();
NewDlg 是弹出窗口的类,textNum是它的一个文本域,为什么不能这样修改这个文本域的值图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • VisualEleven Eleven 6年前

    窗口还没有创建,所有与窗口相关的操作都是非法的。

    点赞 评论 复制链接分享
  • yingyingcht ck_cht 6年前

    第一:还没有创建子窗体就修改
    第二:不要跨窗体修改,意思就是每个窗体的控件要由自己控制,不要通过外部直接修改窗体控件,解决方案为,通过父窗体发送一个消息给子窗体,子窗体接受这个消息,然后修改文本,或者直接通过父窗体对子窗体的EditCtrl发送修改消息

    不过你这个是模态对话框,DoModal之后就卡住了,最好的解决方案是在构造函数里面传入要设置的字符串,窗体记录字符串,子窗体的OnInitDlg里面设置这个字符串到EditCtrl

    点赞 评论 复制链接分享
  • baidu_31002735 baidu_31002735 6年前

    同意楼上“dlg还没有DoModal创建,你就SetWindowText了,SetWindowText需要窗口创建好才能修改”的观点

    点赞 评论 复制链接分享
  • oyljerry oyljerry 6年前

    dlg还没有DoModal创建,你就SetWindowText了,SetWindowText需要窗口创建好才能修改

    点赞 评论 复制链接分享

相关推荐