MFC应用程序中指针的使用

2016-01-29 11:54 87 1 收藏

MFC应用程序中指针的使用,MFC应用程序中指针的使用

【 tulaoshi.com - C语言心得技巧 】

MFC应用程序中指针的使用
作者:gouguijia

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com) 1) 在View中获得Doc指针
2) 在App中获得MainFrame指针
3) 在View中获得MainFrame指针
4) 获得View(已建立)指针
5) 获得当前文档指针
6) 获得状态栏与工具栏指针
7) 获得状态栏与工具栏变量
8) 在Mainframe获得菜单指针
9) 在任何类中获得应用程序类
10) 从文档类取得视图类的指针(1)
11) 在App中获得文档模板指针
12) 从文档模板获得文档类指针
13) 在文档类中获得文档模板指针
14) 从文档类取得视图类的指针(2)
15) 从一个视图类取得另一视图类的指针

VC中编程对于刚刚开始学习的同学,最大的障碍和问题就是消息机制和指针获取与操作。其实这些内容基本上是每本VC学习工具书上必讲的内容,而且通过MSDN很多问题都能解决。
下面文字主要是个人在编程中指针使用的一些体会,说的不当的地方请指正。
一般我们使用的框架是VC提供的Wizard生成的MFC App Wizard(exe)框架,无论是多文档还是单文档,都存在指针获取和操作问题。
下面这节内容主要是一般的框架,然后再讲多线程中的指针使用。使用到的类需要包含响应的头文件。首先一般获得本类(视,文档,对话框都支持)实例指针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 *)AfxGetApp()->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()->GetDescendantWindow(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) 在任何类中获得应用程序类
用MFC全局函数AfxGetApp()获得。

10) 从文档类取得视图类的指针
我是从http://download.cqcnc.com/soft/program/article/vc/vc405.html学到的,从文档获得视图类指针目的一般为了控制同一文档的多个视图的定位问题,我的体会特别是文字处理CEditView当产生多个视图类时,这个功能是非常需要的。
CDocument类提供了两个函数用于视图类的定位:
GetFirstViewPosition()和GetNextView()
virtual POSITION GetFirstViewPosition() const;virtu
                        

来源:http://www.tulaoshi.com/n/20160129/1483837.html

延伸阅读
作为Web应用程序模型的AJAX的出现使服务器端的面貌发生了巨大的变化。用户对着Web页面填写表单并单击提交按钮转到下一个链接的典型Web使用模式现在正在转变为更先进的客户端JavaScript以及功能更丰富的用户界面,只要对表单进行操作,比如单击一个复选框、按下一个键或将鼠标移到一个选项卡上,该用户界面就会不断地与服务器交互。 考...
标签: Web开发
阅读提要 AJAX,一个异步JavaScript和XML的缩略词,是当今快速发展的Web开发界十分热门的技术。在这项新技术提供巨大能力的同时,它也燃发了在"Back"按钮问题上的不容置疑的争论。本文作者将向你解释怎样在真实世界中使用AJAX以及怎样在一个工程中评估它的价值。在你读完本文后,你就会明白什么是AJAX,在什么情况下,为什么以及怎样使用这项技...
标签: Delphi
  Delphi不仅可调用C++产生的DLL模块,同样C++程序也可调用Delphi所产生的DLL部件。这样交互调用,无须重复开发,大大缩短了生产周期。…… Delphi与VisualBasic、VisualFoxPro等软件一样,属于RAD工具(快速应用开发工具)。适合开发32位或16位/32位混合应用程序。Delphi所使用的程序语言是ObjectPascal,是结构化...
标签: Delphi
  11.1 Help文件的建立 Help文件是 Micosoft Windows3.0 以上的版本提供的超文本帮助文件。利用这种超文本 , 用户可非常方便地使用帮助文件系统。帮助文件是以主题为主线进行编写的,一个主题可以跳转至相关的主题,也可按关键字进行主题查询。帮助文件与软件开发工具相结合,可实现应用程序的 ' 上下文敏感 ' ,而且帮助系统...
标签: Delphi
  所有的应用程序都是 TApplication的派生类。 TApplication 有三种方法调用在线帮助系统。 HelpContext方法可调用 WinHelp( 关于 Winhelp的内容见上节 ) 。它把 HelpFile 中的文件名和一个文本代码传递给 WinHelp 。 HelpFile是 TApplication 的字符串类型的属性,专门用来存放 Help 文件的。如果 HelpFile 属性是空字...

经验教程

228

收藏

45
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部