孙鑫VC++视频学习笔记-第3课

时间:2022-06-12 21:12:00

一、什么是MFC

答:MFC(Microsoft Foundation Class,微软基础类库)是微软为了简化程序员的开发工作所开发的一套C++类的集合,是一套面向对象的函数库,可以有效发帮助程序员完成Windows应用程序的开发。

MFC AppWizard是一个辅助生成源代码的向导工具,它可以帮助我们自动生成基于MFC框架的源代码,在每一步向导中,可以选择各种特性。

二、Windows 窗口类和 C++ 中定义的窗口类的区别

答:窗口类有两套概念: 
一是 Windows 中的窗口类, 
二是类库中的操作窗口的C++类,如MFC:CWnd 或 ATL:CWindow 

Windows中的窗口类是某一种窗口,设定了使用该窗口类的窗口的一些基本属性,当然这些属性可以在窗口创建后修改。 

C++类是一个内存对象实体。C++类需要负责创建窗口,在创建窗口的时候,该Windows窗口(的样式)必须属于一种Windows窗口类。 

C++ 窗口类是类对象,由类的构造函数和析构函数负责创建和销毁 C++ 窗口类对象;而 Windows window 更象是一个 Windows 的内部数据结构,由 Create 成员函数创建,由 CWnd 函拟析构函数销毁,此时,仅销毁了 Windows window 而不是销毁 Windows 类对象。另外,在 MFC 中大量使用的 CWnd 对象是属于 C++ 窗口类对象,就象上面讲的一样,是与 Windows window 有差别的。

三、对比.NET与MFC的优缺点

http://anwj336.blog.163.com/blog/static/894152092009113054511581/

四、windows的消息循环机制

Windows的驱动方式则是事件驱动的,即程序的流程不是由事件的顺序来控制,而是由事件的发生来控制,所有的事件是无序的,所为一个程序员,在编写程序时,并不知道用户会先按下哪个按纽,也就不知道程序先触发哪个消息。因此我们的主要任务就是对正在开发的应用程序要发出的或要接收的消息进行排序和管理。事件驱动程序设计是密切围绕消息的产生与处理而展开的,一条消息是关于发生的事件的消息。

五、windows SDK,win32API的区别

32位windows操作系统提供给应用程序的调用接口,就是win32 api(Application Program Interface),微软公布的api全体,加上一些开发工具,比如编译器、链接器。。。合在一起打包,就叫sdk(Software Development Kit),mfc(Microsoft Foundation Class)是微软提供的针对windows操作系统的C++应用编程类库,windows api接口是C语言格式的,mfc将api用C++包装、简化了一下。
六、句柄

句柄,是整个windows编程的基础。一个句柄是指使用的一个唯一的整数值,即一个四字节长的数值,来标志应用程序中的不同对象和同类对象中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。应用程序能够通过句柄访问相应的对象的信息,但是句柄不是一个指针,程序不能利用句柄来直接阅读文件中的信息。如果句柄不用在I/O文件中,它是毫无用处的。 句柄是windows用来标志应用程序中建立的或是使用的唯一整数,windows使用了大量的句柄来标志很多对象。