最近在网上看到一些关于在文档类,视图类,框架类,应用程序类,自定义类中获取其它四个类的方法,现总结如下:
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()就是你定义的类中间的成员。