欢迎来到天天文库
浏览记录
ID:38095268
大小:32.00 KB
页数:4页
时间:2019-05-24
《MFC获得各类句柄》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、MFC中获得各个类的指针/句柄的总结发布:2009-5-1414:49
2、 作者:hnrain
3、 查看:18次一般我们使用的框架是VC提供的Wizard生成的MFCAppWizard(exe)框架,无论是多文档还是单文档,都存在指针获取和操作问题。下面这节内容主要是一般的框架,然后再讲多线程中的指针使用。使用到的类需要包含响应的头文件。首先一般获得本类(视,文档,对话框都支持)实例指针this,用this的目的,主要可以通过类中的函数向其他类或者函数中发指针,以便于在非本类中操作和使用本类中的功能。这其中的关键在于理解m_pMainWnd,AfxGe
4、tApp(),AfxGetMainWnd()的意义!1)在View中获得Doc指针CYouSDIDoc*pDoc=GetDocument();一个视只能有一个文档。2)在App中获得MainFrame指针CWinApp中的m_pMainWnd变量就是MainFrame的指针,也可以:CMainFrame*pMain=(CMainFrame*)AfxGetMainWnd();3)在View中获得MainFrame指针CMainFrame*pMain=(CmaimFrame*)AfxGetApp()->m_pMainWnd;4)获得View(已建立)指针CMa
5、inFrame*pMain=(CmaimFrame*)AfxGetApp()->m_pMainWnd;CyouView*pView=(CyouView*)pMain->GetActiveView();5)获得当前文档指针CDocument*pCurrentDoc=(CFrameWnd*)m_pMainWnd->GetActiveDocument();6)获得状态栏与工具栏指针CStatusBar*pStatusBar=(CStatusBar*)AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_STATUS_BAR);
6、CToolBar*pToolBar=(CtoolBar*)AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_TOOLBAR);7)如果框架中加入工具栏和状态栏变量还可以这样(CMainFrame*)GetParent()->m_wndToolBar;(CMainFrame*)GetParent()->m_wndStatusBar;8)在Mainframe获得菜单指针CMenu*pMenu=m_pMainWnd->GetMenu();9)在任何类中获得应用程序类AfxGetInstanceHandle得到句柄,AfxG
7、etApp得到指针B1.如何在自己的类和“应用程序类”中获得“文档类”的句柄?SDIAfxGetMainWnd()->GetActiveView()->GetDocument()得到指针MDIAfxGetMainWnd()->MDIGetActive()->GetActiveView()->GetDocument()得到指针B3.如何在“框架类”中获得“文档类”句柄?SDIGetActiveView()->GetDocument()得到指针,MDIMDIGetActive()->GetActiveView()->GetDocument()从CMainFra
8、me得到指针,GetActiveView()->GetDocument()从CChildFrame得到指针B4.如何在“视图类”中获得“文档类”句柄?GetDocument()C1.如何在“文档类”中获得“视图类”句柄?GetView(),调用GetFirstViewPosition和GetNextView函数得到指针。C2.如何在自己的类和“应用程序类”中获得“视图类”句柄?SDIGetActiveView得到指针MDIMDIGetActive()->GetActiveView()从CMainFrame得到指针,GetActiveView从CChildF
9、rame得到指针最后提醒大家,在提取到各个句柄之后,因为初次提取的都是标准类句柄,所以,在使用时要注意将标准句柄转换成自己的类的句柄。如:AfxGetApp();//得到的是WinApp类的句柄,所以操作前记得转换成自己定义的类的句柄。如:((CMyApp*)AfxGetApp())->XXXX();//这的xxxx()就是你定义的类中间的成员。另外,附上MSDN关于应用程序信息和管理的各个函数:Whenyouwriteanapplication,youcreateasingleCWinApp-derivedobject.Attimes,youmaywan
10、ttogetinformationaboutthisobjectf
此文档下载收益归作者所有