最近在網上看到一些關於在文檔類,視圖類,框架類,應用程序類,自定義類中獲取其它四個類的方法,現總結如下:
GET App
、、、、、AfxGetInstanceHandle()
、、、、、AfxGetApp()
GET Frame->VIEw->Document
、、、、、SDI AfxGetMainWnd() -> GetActiveVIEw() -> GetDocument()
、、、、、MDI AfxGetMainWnd() -> MDIGetActive() -> GetActiveVIEw() -> GetDocument()
GET Menu
、、、、、CMenu *pMenu=AfxGetApp()->m_pMainWnd->GetMenu();
GET ToolBar,StatusBar
、、、、、(CMainFrame *)GetParent()->m_wndToolBar;
、、、、、(CMainFrame *)GetParent()->m_wndStatusBar;
、、、、、CStatusBar * pStatusBa=(CStatusBar *)AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_STATUS_BAR);
、、、、、CToolBar * pToolBar=(CtoolBar *)AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_TOOLBAR);
Get VIEw from Document
、、、、、GetFirstViewPosition 和 GetNextVIEw 函數得到指針。
最後提醒:
、、、、、在提取到各個句柄之後,因為初次提取的都是標准類句柄,所以,在使用時要注意將標准句柄轉換成自己的類的句柄。
、、、、、((CMyApp*)AfxGetApp())->XXXX();//這的xxxx()就是你定義的類中間的成員。