VC中常用的文档类,视图类,框架类,应用程序类,自定义类中获取其它四个类的
方法
A:
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()就是你定义的类中间的成员。
方法
A:
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()就是你定义的类中间的成员。
本文介绍在Visual C++(VC)中如何通过不同方法获取应用程序、框架窗口、视图、文档等核心组件的句柄,包括SDI和MDI环境下获取活动文档的方法、获取菜单和工具栏的具体步骤。

7522

被折叠的 条评论
为什么被折叠?



