本人想打开一个文件并读取文件。
过程:
应用类 CDrawApp::OnFileOpen() 函数里得到CMainFrame指针pFrame在通过 这个指针得到CDrawDoc *pDoc文档类的指针,然后操作CDrawDoc类里的成员变量m_X1,但是程序执行并打开一个文件的时候程序报错(是非法操作内存错误)
写法如下,
CDrawApp::OnFileOpen() 
{
CMainFrame *pFrame = (CMainFrame *)(AfxGetApp()->m_pMainWnd);
CDraw1Doc *pDoc = ((CDraw1Doc *)pFrame->GetActiveDocument());pDoc->m_X1 = 100;
:://略

}
各位大虾,小虾我做的不对吗?我觉得对呀,可是为什么不让我操作文挡里的数据呢?
谢过先!!!!

解决方案 »

  1.   

    请问你是多文档,还是单文档亚!
    要是多文档的话,是不是得用当前子框架的pFrame->GetActiveDocument());
    GetActiveFrame();来取得把!
      

  2.   

    是多文挡的,我试了:
    CChildFrame *pFrame = (CChildFrame *)(AfxGetApp()->m_pMainWnd);
    CDraw1Doc *pDoc = ((CDraw1Doc *)pFrame->GetActiveDocument());
    pDoc->sss = 100;
    还是出错!!究竟错在哪呢?
      

  3.   

    问题解决:
    MDIChildWnd* pFrame=(CMDIChildWnd*)((CFrameWnd*)AfxGetApp()->m_pMainWnd)->GetActiveFrame();
    CDraw1Doc *pDoc = ((CDraw1Doc *)pFrame->GetActiveDocument());谢谢 sujiayi(sujiayi) !!!