CMainFrame *pMain = (CMainFrame*)AfxGetApp()->m_pMainWnd;
CTestView *pView = (CTestView*)pMain->GetActiveView();
请问这两句话的作用是什么?  AfxGetApp()是功能是什么啊?

解决方案 »

  1.   

    AfxGetApp是获得当前的应用程序的CWinApp的对象.......
    第一个是获得当前的主框架窗口的指针,第二个是获得当前的活动的view的指针......
      

  2.   

    AfxGetApp() 
    获取当前运行的进程的信息。这里面包含了一个m_pMainWnd,这是指向主框架窗口的指针。
    然后把这个指针转换为(CMainFrame*),最后赋值给pMain
    第二句右边是指获取当前活动的View。 然后转化成你自己的(CTestView*)类型的指针。最后赋值。
      

  3.   

    AfxGetApp()是一个全局函数,就象dos程序定义在main前面的全局变量
      

  4.   

    前面两句话,指在框架窗口或视图窗口访问theapp的成员变量或函数
      

  5.   

    如果把变量在你的C*App类中定义,就可以通过通过AfxGetApp()获取C*App的指针,这样就可以调用它的变量了.如果是全局变量,这不需要用这个函数调用它
    AfxGetApp()的返回值是指向theApp的指针,与全局变量无关
    AfxGetApp( )是全局的。
    AfxGetApp( )这个函数可以得到当前应用进程的指针,是CWinApp*类型的,通过这个指针可以访问到这个进程中的对象。
    比如在全局函数中要向对话框中的列表写数据。void writeString(char* pString){   CWnd* pWnd = AfxGetApp()->GetMainWnd();
       CMyDlg * pDlg;
       pDlg=(CMyDlg *) pWnd;
       pDlg->ShowMsg(pString);}AfxGetApp()得到进程指针CWinApp*,通过这个指针可以得到pWnd。要不在全局函数里你怎么对已存在的对话框操作呢。AfxGetApp( )这个函数可以得到当前引用的指针CWinApp*,通过这个指针可以访问到这个进程中的对象文章出处:DIY部落(http://www.diybl.com/course/4_webprogram/asp.net/netjs/20090526/167907.html)
      

  6.   

    1. CMainFrame *pMain = (CMainFrame*)AfxGetApp()->m_pMainWnd; 
    每次生成一个应用,就会有个theApp定义,通过调用AfxGetApp(),可以得到theApp的指针,通过AfxGetApp()->m_pMainWnd就可以得到CMainFrame的指针了。2. CTestView *pView = (CTestView*)pMain->GetActiveView(); 
    对于有视的窗口,就会至少有一个当前活动的视,由该视可以访问文档