MFC获得各类句柄

MFC获得各类句柄

ID:38095268

大小:32.00 KB

页数:4页

时间:2019-05-24

MFC获得各类句柄_第1页
MFC获得各类句柄_第2页
MFC获得各类句柄_第3页
MFC获得各类句柄_第4页
资源描述:

《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

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。