MFC tab_control 标签页里怎么调用主窗口里的函数 - 小众知识

MFC tab_control 标签页里怎么调用主窗口里的函数

2015-10-26 08:07:50 苏内容
  标签: 函数/标签
阅读:4995

一般来说,你这样的模式,两个对话框应该有主从关系。那么,
Dialog1里面,直接这样应该就可以(注意Dialog1的cpp头部包含主对话框.h)
CFFTinDlg* pdlg = (CFFTinDlg *)GetParent();
pdlg->mdrawlin(&dc,....);//需要将本对话框dc和坐标什么的传递过去,如果函数没这个参数,需要加上。
追问:
error C2660: “GetParent”: 函数不接受 0 个参数
error C2143: 语法错误 : 缺少“;”(在“->”的前面)
-----
http://zhidao.baidu.com/question/555803796?quesup2&oldq=1
这里有代码,能不能帮忙看下。谢啦~
 
 void CDialog1::OnBnClickedButton1()
{
    // TODO: 在此添加控件通知处理程序代码
    CFFTinDLGdlg *pDlg = (CFFTinDLGdlg *)(GetParent()->GetParent());
    //pDlg->函数或变量;
 
}
加上括号试试,你的工程版本太高,我这最高VS2008,没法打开调试。

tabcontrol子级对话框调用主对话框的函数问题

app需要进行udp通信。
故我在主对话框里面有3个函数InitSocket ,CreateUdpSocket,CloseSocket;
现在几个tab控制的对画框里面 ,通信的时候需要调用这几个函数。
尝试了一种:
。h里面添加了这句
class CMainDlg;
同时
public:
CMainDlg *m_pClassNormDlg;
在。h里面
初始化:
m_pClassNormDlg=NULL;
m_pClassNormDlg=(CMainDlg*)AfxGetMainWnd();

调用:
m_pClassNormDlg->CreateUdpSocket();
编译都没问题,调试显示 创建m_pClassNormDlg指针失败。

恳求指导。

m_pClassNormDlg=(CMainDlg*)AfxGetMainWnd();
你句你应该放在主对话框类的OnInitDialog函数中,而不是构造函数中。

你Debug下调试一下,构造函数中调用AfxGetMainWnd()应该返回的是NULL

tab里对话框是嵌在住对话框里的吧, 试试把子对话框的构造函数改下,传入一个 CMainDlg* 指针(就是this),在子对话框构造函数里把CMainDlg* 指针交给m_pClassNormDlg。

扩展阅读
相关阅读
© CopyRight 2010-2021, PREDREAM.ORG, Inc.All Rights Reserved. 京ICP备13045924号-1