CMainFrame如何调用CMyDoc里的成员?

来源:百度知道 编辑:UC知道 时间:2024/06/20 11:24:40
我在用MFC做GUI的时候想在CMainFrame类里面使用函数对CMyDoc类里的公有变量的值进行判断执行,但是用类指针引用的时候编译通过运行则出错,其他类也无法通过CMainFrame类生成的指针对CMainFrame里的函数进行调用,请问应该如何解决?

//在CMainFrame类中:
获得CMainFrame类对象的指针:
CMainFrame* pMain=(CMainFrame*)CWnd::GetActiveWindow();
获得C***View类对象的指针:
C***View *pView=(C***View *)CFrameWnd::GetActiveView();
获得C***Doc类对象的指针
C***Doc *pDoc=(C***Doc *)CFrameWnd::GetActiveDocument();

例子:
void CMainFrame::OnFrame()
{
// TODO: Add your command handler code here
CFrameForDocDoc *pDoc = (CFrameForDocDoc *)CFrameWnd::GetActiveDocument();
//pDoc->test=50;

char string_f[100];
sprintf(string_f,"%d",pDoc->test);
// TODO: Add your command handler code here
MessageBox(string_f,"frame for docP",MB_OK);
}

注意:要在最上面添加头文件:#include "***Doc.h" ***为程序名
我这边是:#include "FrameForDocDoc.h"

试试吧:
更详细请看这里:http://blog.csdn.net/smart611/arch