VC 子窗体如何调用父窗体函数?望高手指教!!如果满意可以追加悬赏分!!

来源:百度知道 编辑:UC知道 时间:2024/05/25 08:30:09
在子窗体如何调用父窗体中的一个函数,能不能给出具体代码??谢谢
我知道用指针调用父窗体的变量,不过调用父窗体的函数的时候编译出错!!不知道为什么??

简单的说,就是把父窗口的地址指针传递给子窗口,以供子窗口随时调用父窗口内的变量和函数
以我曾编写的一段程序为例:在父窗口(CNetChessView)调用子窗口(CSetDlg)的时候,将父窗口的指针(this)传递给子窗口.如
void CNetChessView::OnListen()
{
// TODO: Add your command handler code here
Server.Close();
CSetDlg setdlg;//子窗口对象
setdlg.InitDialog(this);//在子窗口的初始化函数里加上父窗口的指针
setdlg.DoModal();
//侦听端口
Server.Create(m_iPort);
Server.Listen();
}

//子窗口的初始化函数如下
void CSetDlg::InitDialog(CNetChessView *pParent)
{
parent=pParent;//父窗口指针存放
m_iPort=(parent)->m_iPort;//获取父窗口的变量
m_strCIP=(parent)->m_strIP;//同上
}
//函数和变量申明如下
public:
void InitDialog(CNetChessView * pParent);
CNetChessView * parent;

//包括初始化函数,和下面这个函数都调用了父窗口的变量,调用父窗口的函数也是一样的
void CSetDlg::OnOK()
{
// TODO: Add extra validation here
UpdateData(TRUE);
(parent)->m_iPort=m_iPort;;//获取父窗口的变量
(parent)->m_strIP=m_strCIP;
CDialog::OnOK();