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高手指点一下,如何才能实现我的需求? 展开
CDialogMessage Dlg;
Dlg.DoModal();
Dlg.GetDlgItem(IDC_EDIT8)->SetWindowText(_T("请输入有效命令后再进行转换操作!"));
程序走到最后一句就崩溃,我改用Dlg.SetDlgItemText(IDC_EDIT8, _T("请输入有效命令后再进行转换操作!"));也一样崩溃,由于第一次写MFC程序,不是很了解,希望MFC高手指点一下,如何才能实现我的需求? 展开
1个回答
展开全部
你该去建立非模态的 , 并且注意指针类型转换 GetDlgItem得到CWnd * 你需要把它转成CEdit *
模态的DoModal之后窗口就消失了,不存在了,窗口上的控件自然也不存在了
模态的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 广告
2024-07-18 广告
`VLOOKUP` 匹配出错误的数据通常是由于以下几个原因:1. **查找值错误**:输入的查找值与数据源中的值不匹配,可能是因为拼写错误、大小写不一致或存在不可见的字符。2. **查找区域设置错误**:查找区域的首列必须包含要查找的值,且...
点击进入详情页
本回答由TableDI提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询