zoukankan      html  css  js  c++  java
  • VC MFC SDI/MDI框架各部分指针获取方式

     

    获得CWinApp

    获得CMainFrame

    获得CChildFrame

    获得CDocument

    获得CView

    CWinApp

     

    AfxGetMainWnd()

    m_pMainWnd

    AfxGetMainWnd()->MDIGetActive()

    AfxGetMainWnd()->GetActiveFrame()

    SDI:AfxGetMainWnd()->GetActiveView()->GetDocument()

    MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView()->GetDocument()

    SDI:AfxGetMainWnd()->GetActiveView()  
    MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView()

    CMainFrame

    AfxGetApp()

    theApp

     

    MDIGetActive()

    GetActiveFrame()

    SDI:GetActiveView()->GetDocument()  
    MDI:MDIGetActive()->GetActiveView()->GetDocument()  

    SDI:GetActiveView()  
    MDI:MDIGetActive()->GetActiveView()

    CChildFrame

    AfxGetApp()

    theApp

    GetParentFrame()

     

    GetActiveView()->GetDocument()  

    GetActiveView()

    CDocument

    AfxGetApp()

    theApp

    AfxGetMainWnd()  

    AfxGetMainWnd()->MDIGetActive()

    AfxGetMainWnd()->GetActiveFrame()

     

    POSITION   pos   =   GetFirstViewPosition();GetNextView(pos)  

    CView

    AfxGetApp()

    theApp

    AfxGetMainWnd()  

    GetParentFrame()  

    GetDocument()

     

    在其他类中

    AfxGetApp()

    AfxGetMainWnd()  

    AfxGetMainWnd()->MDIGetActive()

    AfxGetMainWnd()->GetActiveFrame()

    SDI:AfxGetMainWnd()->GetActiveView()->GetDocument()

    MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView()->GetDocument()

    SDI:AfxGetMainWnd()->GetActiveView()  
    MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView()

    理一理MFC的这几个类的关系,可以很容易明白上面的这些乱七八糟的逻辑。

    App是应用域,所有的域中的东西都可以通过全局函数访问到它。

    MainFrame是主框架,也基本可以用全局函数访问到。

    MainFrame下是若干个ChildFrameChildFrame中若干个ViewDocument(可能不成对),ChildFrame管理着ViewViewDocument进行互操作。

    因此整体框架就出来了,一般除了直接应用的关系都可以通过MainFrame-->Active ChildFrame

  • 相关阅读:
    Codeforces 651 A. Joysticks
    Codeforces 538 C. Tourist's Notes
    Codeforces 538 B. Quasi Binary
    Codeforces 538 A. Cutting Banner-substr()函数字符串拼接
    Codeforces 626 C. Block Towers-二分 (8VC Venture Cup 2016-Elimination Round)
    Codeforces 626 B. Cards (8VC Venture Cup 2016-Elimination Round)
    hdu 4825 Xor Sum trie树
    Codeforces Round #358 (Div. 2) C. Alyona and the Tree dfs
    Codeforces Round #357 (Div. 2) 优先队列+模拟
    2016 湘潭邀请赛
  • 原文地址:https://www.cnblogs.com/johnpher/p/2570707.html
Copyright © 2011-2022 走看看