MFC 框架中获得四大对象的指针

◆获得 App 类对象的指针
CFooApp* pApp = (CFooApp*)AfxGetApp();
◆获得 Frame 类对象的指针:
// 在 App 类中
CMainFrame* pFrame = (CMainFrame*)CWinThread::m_pMainWnd;

// 在 Frame 类中
CMainFrame* pFrame = (CMainFrame*)CWnd::GetActiveWindow();

// 在 Doc 类中
CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd();
CMainFrame* pFrame = (CMainFrame*)AfxGetApp()->m_pMainWnd;

// 在 View 类中
CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd();
CMainFrame* pFrame = (CMainFrame*)CWnd::GetParentFrame();
CMainFrame* pFrame = (CMainFrame*)AfxGetApp()->m_pMainWnd;
◆获得 Doc 类对象的指针:
// 在 App 类中
CFooDoc* pDoc = (CFooDoc*)((CMainFrame*)m_pMainWnd)->CFrameWnd::GetActiveDocument();

// 在 Frame 类中
CFooDoc* pDoc = (CFooDoc*)CFrameWnd::GetActiveDocument();

// 在 View 类中
CFooDoc* pDoc = GetDocument();
◆获得 View 类对象的指针:
// 在 App 类中
CFooView* pView = (CFooView*)((CMainFrame*)m_pMainWnd)->CFrameWnd::GetActiveView();

// 在 Frame 类中
CFooView* pView = (CFooView*)CFrameWnd::GetActiveView();

// 在 Doc 类中
CFooView* pView = (CFooView*)((CMainFrame*)AfxGetApp()->m_pMainWnd)->CFrameWnd::GetActiveView();

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注