開發MFC Document/View架構的程式時,首先遇到的問題就是如何取得Doucment, View, MainFrame與App的指標。
以下是一些常用的指標取得方法:
-
取得應用程式類別CWinApp指標
- 取得MainFrame指標
- 使用成員變數m_pMainWnd
(m_pMainWnd為CWinThread的成員變數, 而CWinApp繼承自CWinThread, 故可使用m_pMainWnd取得主視窗之指標)
CMainFrame* pMainWnd = (CMainFrame*) AfxGetApp()->m_pMainWnd; - 透過MFC全域函數 AfxGetMainWnd() 取得
CMainFrame* pMainWnd = (CMainFrame*) AfxGetMainWnd();
- 使用成員變數m_pMainWnd
- 在View中取得Document指標
用View的成員函數GetDocument()取得
CMyAppDoc* pDoc=GetDocument(); - 取得現行的View指標先取得MainFrame指標,再由MainFrame之GetActiveView()函數取得View的指標
CMainFrame* pMainWnd = (CMainFrame*) AfxGetApp()->m_pMainWnd;
CMyAppView* pView = ( CMyAppView*) pMainWnd->GetActiveView();
- 取得現行的Document指標
先取得FrameWnd指標,再由FrameWnd的GetActiveDocument()函數取得Document的指標
CFrameWnd* pMainFrm = (CFrameWnd*) AfxGetApp()->m_pMainWnd;
CDocument* pCurDoc = (CFrameWnd*) pMainFrm ->GetActiveDocument();
沒有留言:
張貼留言