MFC父窗口中调用子窗口EditControl问题 20

我的子窗口实际就是一个messagebox的功能,我用的EditControl控件,想在父窗口中SetWindowText不同的提示语到子窗口的Edit控件中,CDial... 我的子窗口实际就是一个messagebox的功能,我用的EditControl控件,想在父窗口中SetWindowText不同的提示语到子窗口的Edit控件中,
CDialogMessage Dlg;
Dlg.DoModal();
Dlg.GetDlgItem(IDC_EDIT8)->SetWindowText(_T("请输入有效命令后再进行转换操作!"));
程序走到最后一句就崩溃,我改用Dlg.SetDlgItemText(IDC_EDIT8, _T("请输入有效命令后再进行转换操作!"));也一样崩溃,由于第一次写MFC程序,不是很了解,希望MFC高手指点一下,如何才能实现我的需求?
展开
 我来答
veket的小号
2014-12-21 · TA获得超过3371个赞
知道大有可为答主
回答量:3762
采纳率:0%
帮助的人:3941万
展开全部
你该去建立非模态的 , 并且注意指针类型转换 GetDlgItem得到CWnd * 你需要把它转成CEdit *

模态的DoModal之后窗口就消失了,不存在了,窗口上的控件自然也不存在了
追问
但是非模态对话框弹出后扔能对父窗口进行操作,我想要达到的效果是子窗口弹出后就不能对父窗口进行任何操作..还有其他办法实现我的需求吗?谢谢
追答

这个得玩线程 和查找窗口 

UINT MyThreadProc(LPVOID pParam)

{

while(((CMfcdlg2014Dlg*)pParam)->threadrun)

{

HWND hwnd = FindWindow("#32770", "Dialog");

if(hwnd)

{

CWnd *p = CWnd::FromHandle(hwnd);

((CTestDlg *)p)->SetDlgItemText(IDC_EDIT1, "设置文本by线程");

}

Sleep(100);

}

return 0;

}

void CMfcdlg2014Dlg::OnButton1() 

{

// TODO: Add your control notification handler code here

threadrun= true;

AfxBeginThread( MyThreadProc, (LPVOID)this);

CTestDlg dlg;

dlg.DoModal();

threadrun = false;

}


TableDI
2024-07-18 广告
`VLOOKUP` 匹配出错误的数据通常是由于以下几个原因:1. **查找值错误**:输入的查找值与数据源中的值不匹配,可能是因为拼写错误、大小写不一致或存在不可见的字符。2. **查找区域设置错误**:查找区域的首列必须包含要查找的值,且... 点击进入详情页
本回答由TableDI提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式