欢迎来到天天文库
浏览记录
ID:15405069
大小:36.50 KB
页数:7页
时间:2018-08-03
《mfc应用程序中指针的使用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、MFC应用程序中指针的使用本文由chenwang02贡献doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。MFC应用程序中指针的使用作者:gouguijiaVC提供了相应的函数来获取上述对象的句柄:例如在CMainFrame中可以通过变量m_pActiveDocument和m_pActiveView取得当前的文档和视图指针。在其他的任何地方,可以通过AfxGetMainWnd()获得CMainFrame的指针,同样获得了Doc和View的指针。在View下,函数GetDocument()直接返回了Doc的指针。在Doc下Get
2、FirstView获得第一个视图,GetNextView()可以获得下面的视图,依次下去,可以获得所有的视图。使用GetDC()函数你就获得了与之关联的DC了。1)在View中获得Doc指针2)在App中获得MainFrame指针3)在View中获得MainFrame指针4)获得View(已建立)指针5)获得当前文档指针6)获得状态栏与工具栏指针7)获得状态栏与工具栏变量8)在Mainframe获得菜单指针9)在任何类中获得应用程序类10)从文档类取得视图类的指针(1)11)在App中获得文档模板指针12)从文档模板获得文档类指针13)在文档类中获得文档模板指
3、针14)从文档类取得视图类的指针(2)15)从一个视图类取得另一视图类的指针VC中编程对于刚刚开始学习的同学,最大的障碍和问题就是消息机制和指针获取与操作。其实这些内容基本上是每本VC学习工具书上必讲的内容,而且通过MSDN很多问题都能解决。下面文字主要是个人在编程中指针使用的一些体会,说的不当的地方请指正。一般我们使用的框架是VC提供的Wizard生成的MFCAppWizard(exe)框架,无论是多文档还是单文档,都存在指针获取和操作问题。下面这节内容主要是一般的框架,然后再讲多线程中的指针使用。使用到的类需要包含响应的头文件。首先一般获得本类(视,文档,
4、对话框都支持)实例指针this,用this的目的,主要可以通过类中的函数向其他类或者函数中发指针,以便于在非本类中操作和使用本类中的功能。1)在View中获得Doc指针CYouSDIDoc*pDoc=GetDocument();一个视只能有一个文档。2)在App中获得MainFrame指针CWinApp中的m_pMainWnd变量就是MainFrame的指针也可以:CMainFrame*pMain=(CMainFrame*)AfxGetMainWnd();3)在View中获得MainFrame指针CMainFrame*pMain=(CmaimFrame*)Af
5、xGetApp()->m_pMainWnd;4)获得View(已建立)指针CMainFrame*pMain=(CmaimFrame*)AfxGetApp()->m_pMainWnd;CyouView*pView=(CyouView*)pMain->GetActiveView();5)获得当前文档指针CDocument*pCurrentDoc=(CFrameWnd*)m_pMainWnd->GetActiveDocument();6)获得状态栏与工具栏指针CStatusBar*pStatusBar=(CStatusBar*)AfxGetMainWnd()->Ge
6、tDescendantWindow(AFX_IDW_STATUS_BAR);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)在任何类中
7、获得应用程序类用MFC全局函数AfxGetApp()获得。10)从文档类取得视图类的指针我是从http://download.cqcnc.com/soft/program/article/vc/vc405.html学到的,从文档获得视图类指针目的一般为了控制同一文档的多个视图的定位问题,我的体会特别是文字处理CEditView当产生多个视图类时,这个功能是非常需要的。CDocument类提供了两个函数用于视图类的定位:GetFirstViewPosition()和GetNextView()virtualPOSITIONGetFirstViewPosition(
8、)const;virtualCView
此文档下载收益归作者所有