这是我的代码:
void CCreate::OnBTN1() //消息响应函数{
// TODO: Add your control notification handler code here
CXsglDlg dlg;//另一个对话框的对象
dlg.m_nvalue=m_name; //文本传递给dlg中一个变量
dlg.GetDlgItem(IDC_STAC1)->SetWindowText(dlg.m_nvalue);/得到控件ID,改变
UpdateData(FALSE);// 刷新
CDialog::OnOK();//关闭 }
void CCreate::OnBTN1() //消息响应函数{
// TODO: Add your control notification handler code here
CXsglDlg dlg;//另一个对话框的对象
dlg.m_nvalue=m_name; //文本传递给dlg中一个变量
dlg.GetDlgItem(IDC_STAC1)->SetWindowText(dlg.m_nvalue);/得到控件ID,改变
UpdateData(FALSE);// 刷新
CDialog::OnOK();//关闭 }
解决方案 »
- 菜鸟编辑菜单错误
- 请教关于核心编程中的异常处理?
- 简体到big5怎么转换啊?
- 数据库GetFieldValue的用法
- 求助 error C2011 'ICommand' : 'struct' type redefinition
- 困扰我一个月的问题仍旧没有解决,哪位给我解决绝对给800分,君子一言驷马难追!!!拜托
- 谁知道 microsoft agent的软件是做什么的?
- 我在原工程中加入了新的文件可是不能定位函数了!!!
- TreeCtrlItem.item.pszText=*ptr如何赋值?怎不行?
- 关于自行编写SVCHOST服务的程序 127错误
- VS2008 如何修改COutputWnd停靠窗口下方debug等文本
- 求助:将sdi单文档应用程序封装成dll
dlg.m_nvalue=m_name; //文本传递给dlg中一个变量
此时没有调用dlg.DoModal();所以对话框还没产生,当然控件也没有
那么这个GetDlgItem返回NULL了。
你可以在CXsglDlg的OnInitDialog函数中调用下面这句
dlg.GetDlgItem(IDC_STAC1)->SetWindowText(dlg.m_nvalue);/得到控件ID,改变
UpdateData(FALSE);// 这个不是刷新,这个是 值 传到 控件。再说这个是针对于当前对话框的,对于另一个对话框,你要在CXsglDlg.cpp中调用。
dlg.m_nvalue=m_name; //文本传递给dlg中一个变量
dlg.GetDlgItem(IDC_STAC1)->SetWindowText(dlg.m_nvalue);/得到控件ID,改变
----------
你只定义了一个对话框类的对象,并没有关联任何的窗口,所以后面跟窗口相关联的操作均为非法的。你可以修改CXsglDlg类的构造函数,将m_name作为构造函数的参数传递进入。在CXsglDlg的窗口初始化的函数中比如OnInitDialog函数中GetDlgItem(IDC_STAC1)->SetWindowText(m_nvalue);/
主对话框为类为CXsgl,单击建立按钮,弹出子窗口CCreate,在子窗口输入文本,单击确定,文本被传到主对话框的静态编辑框控件上面,并且显示出来
下面是单击确定后的响应函数,希望大侠看看问题到底出在哪里,非常感谢
{
// TODO: Add your control notification handler code here
CXsglDlg dlg;
dlg.m_nvalue=m_name;
dlg.GetDlgItem(IDC_STAC1)->SetWindowText(dlg.m_nvalue);
UpdateData(FALSE);
CDialog::OnOK();
}
图片没有按顺序显示,海涵
.....
主对话框为类为CXsgl,单击建立按钮,弹出子窗口CCreate,在子窗口输入文本,单击确定,文本被传到主对话框的静态编辑框控件上面,并且显示出来
CXsglDlg dlg;
dlg.DoModal();
GetDlgItem(IDC_STAC1)->SetWindowText(dlg.m_name);
WM_SETTEXTand so on...