NewDlg dlg;
CString str("hello");
dlg.textNum.SetWindowText(str);
dlg.DoModal();
NewDlg 是弹出窗口的类,textNum是它的一个文本域,为什么不能这样修改这个文本域的值
dlg还没有DoModal创建,你就SetWindowText了,SetWindowText需要窗口创建好才能修改
同意楼上“dlg还没有DoModal创建,你就SetWindowText了,SetWindowText需要窗口创建好才能修改”的观点
第一:还没有创建子窗体就修改
第二:不要跨窗体修改,意思就是每个窗体的控件要由自己控制,不要通过外部直接修改窗体控件,解决方案为,通过父窗体发送一个消息给子窗体,子窗体接受这个消息,然后修改文本,或者直接通过父窗体对子窗体的EditCtrl发送修改消息
不过你这个是模态对话框,DoModal之后就卡住了,最好的解决方案是在构造函数里面传入要设置的字符串,窗体记录字符串,子窗体的OnInitDlg里面设置这个字符串到EditCtrl
窗口还没有创建,所有与窗口相关的操作都是非法的。