C++、VC++、MFC区别和联系
来源:互联网 发布:如何将mac照片导入硬盘 编辑:程序博客网 时间:2024/06/06 07:28
①C++是纯粹的编程语言;
②VC++是编程环境,即平常所说的IDE;VC++是WinDOS下开发人员使用的专业C++ SDK(SDK,Standard SoftWare Develop Kit,专业软件开发平台),VC++只是一个编译器,或者说是一种“编译器 +源程序编辑器”的IDE,
③MFC(微软基本类Microsoft Foundation Classes)是随微软VC++ 开发工具宣布的类库,MFC就是挂在VC++之上的一个帮助软件开发包,MFC是Win API与C++的结合,MFC是对API的封装。
MFC不只是一个功效单纯的界面开发系统。它供给的类绝大部分用来进行界面开发,关联一个窗口的动作,但它供给的类中有好多类不与一个窗口关联,即类的作用不是一个界面类,不实现对一个窗口对象的把持(如创建、销毁),而是一些在WinDOS(用MFC编写的程序绝大部分都在WinDOS中运行)中实现内部处理的类,如数据库的管理类等。学习中最应花费时间的是消息和设备环境,对C++和MFC的学习中最难的部分是指针,C++面向对像程序设计的其它部分,如数据类型、流程把持都不难。
学VC主要就是要学MFC,大约有100多个类,但常用的也就二三十个。
MFC使用“Afx”作为所有的全局函数的前缀,“afx”作为全局变量的前缀。因为在MFC的早期开发阶段它叫“Application Framework Extensions”缩写为“AFX”。AFX供给了对Windows API的高度抽象,建立了全新的面向对象的AFX API,但它对于新手来说太庞杂了,所以AFX小组不得不重新开始。后来他们创建了一组C++类,这就是MFC。MFC这个名字被采用得太晚了以至于没来得及修改这些引用。
API:即微软供给的WinDOS下应用程序的编程语言接口,是一种软件编程的规范,但本身不是一种程序开发语言,可以允许用户使用各种各样的第三方(如我是一方,微软是一方,Borland就是第三方)的编程语言来进行对WinDOS下应用程序的开发,使这些被开发出来的应用程序能在WinDOS下运行。比如VB,VC++,Java,Dehpi编程语言函数实质上全部源于API,因此用它们开发出来的应用程序都能工作在WinOS的消息机制和绘图里,遵守WinDOS作为一个操作系统的内部实现。
重要的MFC:
CWnd:窗口,它是大多数“看得见的东西”的父类(Windows里几乎所有看得见的东西都是一个窗口,大窗口里有许多小窗口),比如视图CView、框架窗口CFrameWnd、工具条CToolBar、对话框CDialog、按钮CButton,etc;一个例外是菜单(CMenu)不是从窗口派生的。该类很大,一开始也不必学,知道就行了。
CDocument文档,负责内存数据与磁盘的交互。最重要的是OnOpenDocument(读入),OnSaveDocument(写盘),Serialize(读写)
CView视图,负责内存数据与用户的交互。包含数据的显示、用户操作的响应(如菜单的选取、鼠标的响应)。最重要的是OnDraw(重画窗口),通常用CWnd::Invalidate()来启动它。另外,它通过消息映射表处理菜单、工具条、快捷键和其他用户消息。你自己的许多功效都要加在里面,你打交道最多的就是它。
CDC设备文本。无论是显示器还是打印机,都是画图给用户看。这图就抽象为CDC。CDC与其他GDI(图形设备接口)一起,完成文字和图形、图像的显示工作。把CDC想象成一张纸,每个窗口都有一个CDC相联系,负责画窗口。CDC有个常用子类CClientDC(窗口客户区),画图通常通过CClientDC完成。 CDialog对话框
CWinApp应用程序类。似于C中的main函数,是程序执行的入口和管理者,负责程序建立、消灭,主窗口和文档模板的建立。最常用函数InitInstance():初始化。
CGdiObject及子类,用于向设备文本画图。它们都需要在使用前选进DC。
CPen笔,画线
CBrush刷子,填充
CFont字体,把持文字输出的字体
CBitmap位图
CPalette调色板
CRgn区域,指定一块区域可以用于做特殊处理。
CFile文件。最重要的不外是Open(打开),Read(读入),Write(写)
CString字符串。封装了C中的字符数组,非常实用。
CPoint点,就是(x,y)对
CRect矩形,就是(left,top,right,bottom)
CSize大小,就是(cx,cy)对(宽、高)MFC是在1992年的Microsoft 16位版的C/C++编译器的7.0版本中作为一个扩展轻量级的Windows API面向对象的C++封装库而引入的。此时,C++因为它在和API方面的卓越表现,刚刚开始被用来取代C应用于开发商用软件。因此,他们推出了替代早期的老式的字符界面的集成开发环境(IDE)的PWB。
- C++、VC++、MFC区别和联系
- C++、VC++、MFC的区别和联系
- C,C++,VC++,MFC之间有什么区别和联系
- C,C++,VC++,MFC之间有什么区别和联系
- C,C++,VC++,MFC之间有什么区别和联系
- C,C++,VC++,MFC之间有什么区别和联系
- C,C++,VC++,MFC之间有什么区别和联系
- (转)C++、VC++、MFC的区别和联系
- C++、VC++和MFC的区别与联系
- java、c、c++、vc、vc++、vb的区别和联系
- java、c、c++、vc、vc++、vb的区别和联系
- C、VC、C++、C#之区别和联系
- C++,C#,VC,VC.net,java以及VC++有什么区别和联系?
- C++、VC++、MFC这三都到底有什么区别和联
- C ,C++ ,VC,VC++,MFC,API区别
- .Net和MFC的区别与联系
- C,C++,VC, VC++,MFC有什么区别?
- C,C++,VC, VC++,MFC有什么区别?
- 用div+css布局,控件排布乱了,如何解决
- MAC下安装与配置MySQL
- MSVCRTD.LIB和LIBCMTD.LIB冲突 (转)
- 基于unity3d(C#)的有限状态机设计(二)
- C++ 通过代码托管的方式调用c#的httpAgilityPack库
- C++、VC++、MFC区别和联系
- hadoop常用运维命令1
- cocos2dx粒子碰撞检测
- std::string的工具函数
- 扫雷游戏中求当前点四周雷的个数
- Android的LogCat的使用
- 用JS创建form在FireFox中不能提交的问题
- excel 2003 读取sqlserver 数据库表数据(图)
- 屡屡~~~