MFC父子窗体问题
1,MFC中为什么在子窗体的类的头文件#include父窗体类的头文件会报错?2,子窗体中如何控制父窗体中的控件?...
1,MFC中为什么在子窗体的类的头文件#include父窗体类的头文件会报错?
2,子窗体中如何控制父窗体中的控件? 展开
2,子窗体中如何控制父窗体中的控件? 展开
3个回答
2011-05-08
展开全部
直接说还真不好说
包含父窗口头文件不一定会报错,看怎么包含了
控制父窗口的控件,首先看父窗口有没有提供这个接口,如果有的话,子窗口调用GetParent获得父窗口指针,然后就可以对控件进行操作了
包含父窗口头文件不一定会报错,看怎么包含了
控制父窗口的控件,首先看父窗口有没有提供这个接口,如果有的话,子窗口调用GetParent获得父窗口指针,然后就可以对控件进行操作了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你试一下这样行不行,以下是我常用的办法
在子类的cpp文件中加入:
#include "DlgParent.h"
在子类的cpp文件的函数中加入:
CDlgParent * parent = (CDlgParent*)GetParent();
parent->m_edit.SetWindowText("朋友,你好!");
在子类的cpp文件中加入:
#include "DlgParent.h"
在子类的cpp文件的函数中加入:
CDlgParent * parent = (CDlgParent*)GetParent();
parent->m_edit.SetWindowText("朋友,你好!");
追问
我这样试过了。
在系统文件里面有个ASSERT(::IsWindow(m_hWnd)),这里会报错!!!
追答
怪我没说清楚,应该先在父类弹出子类对话框,如在OK按钮加入DoModal函数:
void CParentDlg::OnOK()
{
// TODO: Add extra validation here
CDlgMe dlg;
dlg.DoModal();
}
然后在子类的OK按钮写入:
#include "ParentDlg.h"
........
void CDlgMe::OnOK()
{
// TODO: Add extra validation here
CParentDlg * parent = (CParentDlg*)GetParent();
parent->m_edit.SetWindowText("朋友,你好!");
CDialog::OnOK();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
getParent()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询