Visual C++程序设计与应用教程课后答案Word格式.docx
《Visual C++程序设计与应用教程课后答案Word格式.docx》由会员分享,可在线阅读,更多相关《Visual C++程序设计与应用教程课后答案Word格式.docx(28页珍藏版)》请在冰豆网上搜索。
(7)快捷键或菜单及相关资源的资源符号的前缀是IDR_。
(8)用户可以通过项目工作区窗口的ResourceView视图来查看资源。
2.选择题
(1)项目文件的扩展名是()。
A..exeB..dspC..dswD..cpp
(2)设置断点的默认方式是()。
(第2章)
A.LocationB.DataC.MessageD.Breakpoints
(3)用应用程序向导AppWizard创建C++源文件,应选择()选项卡。
A.FilesB.ProjectsC.WorkspacesD.OtherDocuments
(4)Standard工具栏中最左边按钮与()菜单命令的功能一样。
A.NewB.NewFileC.NewTextFileD.NewWorkspace
(5)Windows资源提供的资源编辑器不能编辑()。
A.菜单B.工具栏C.状态栏D.位图
3.判断题
(1)打开一个项目,只需打开对应的项目工作区文件。
(T)
(2)用户可以通过Tools|Customize菜单命令设置集成开发环境的工具栏。
(3)通过应用程序向导AppWizard建立的程序不能被立即执行。
(F)
(4)在同一项目中,VisualC++在内部用来标识资源的资源符号不能重复。
(T)
(5)在Windows环境下,资源与程序源代码紧密相关。
(F)
4.简答题
(1)什么是项目?
它是由什么组成的?
在VisualC++集成开发环境中,把实现程序设计功能的一组相互关联的C++源文件、资源文件以及支撑这些文件的类的集合称为一个项目。
项目是VisualC++IDE开发程序的基本单位,一个项目至少包含一个项目文件,项目文件的扩展名为.dsp。
项目文件保存了项目中所用到的源代码文件和资源文件的信息,如文件名和路径等。
同时,项目文件还保存了项目的编译设置等信息,如调试版(debug)和发布版(release)。
另外,根据项目类型的不同,一个项目包含有不同的源文件、资源文件和其他类别的文件。
(2)解释项目工作区中各个视图的功能。
ClassView用于显示项目中定义的类;
ResourceView用于显示项目中所包含的资源文件;
FileView用于显示所创建的项目。
(3)WizardBar工具栏的作用是什么?
WizardBar工具栏可以对ClassView和ClassWizard中的命令进行快速访问,使类和成员函数的操作更加方便,WizardBar会自动跟踪用户程序的上下文。
(4)简述向项目添加一个资源的方法。
用户可以通过在Insert菜单中选择Resource菜单项来创建新的资源。
单击Resource菜单项,弹出InsertResource对话框。
首先在对话框的左侧选择资源类型,然后根据具体情况,单击右侧的不同按钮。
若资源需要临时创建,则单击New按钮,在打开的相应资源编辑器中创建资源。
若资源文件已经存在,则单击Import按钮,在ImportResource对话框中选择资源文件,然后单击Import按钮。
2.5习题
1.填空题
(1)MFC的全称是MicrosoftFoundationClass。
(2)Windows是一个基于事件的消息驱动系统。
(3)句柄是Windows使用的一种无重复整数,主要用来标识应用程序中的一个对象。
(4)利用MFCAppWizard[exe]可以创建三种类型的应用程序,即单文档、多文档和基于对话框的应用程序。
(5)一个单文档的MFC应用程序框架一般包括5个类,它们分别是应用程序类、框架窗口类、视图类、文档类和文档模板类。
(6)Windows消息主要有3种类型,即标准Windows消息、控件消息和命令消息。
(7)MFC采用消息映射来处理消息。
(8)CWinApp提供4个成员函数来实现传统SDK应用程序WinMain()函数完成的工作。
2.选择题
(1)Windows应用程序是按照()非顺序的机制运行的。
A.事件→消息→处理
B.消息→事件→处理
C.事件→处理→消息
D.以上都不对
(2)下面()不是MFC应用程序外观的选项。
A.DockingtoolbarB.Context-sensitiveHelp
C.ActiveXControlsD.Printingandprintpreview
(3)对MFC类的下列描述中,()是错误的。
A.应用程序类CWinApp是CWinThread的子类
B.窗口类CWnd提供了MFC中所有窗口类的基本功能
C.CView是CWnd类的子类
D.CDocTemplate类是Template类的子类
(4)下列()不是MFC消息映射机制有关的宏。
A.DECLARE_MESSAGE_MAP()宏
B.BEGIN_MESSAGE_MAP()宏
C.DECLARE_SERIAL()宏
D.END_MESSAGE_MAP()宏
3.判断题
(1)窗口是Windows应用程序的基本操作单元,是应用程序与用户之间交互的接口环境,也是系统管理应用程序的基本单位。
(t)
(2)所有的Windows应用程序都是消息驱动的。
(t)
(3)所有的Windows应用程序都是用MFCAppWizard[exe]向导创建的。
(f)
(4)使用MFCAppWizard[exe]向导创建应用程序框架时,向导生成的文件名和类名是不可更改的。
(5)消息映射是将消息处理函数与它要处理的特定消息连接起来的一种机制。
(t)
(6)命令消息是由菜单项、工具栏按钮、快捷键等用户界面对象发出的WM_COMMAND消息。
(t)
(7)利用MFC编程时,所有的消息与消息处理函数的添加都必须采用ClassWizard类向导来完成。
(8)WinMain函数是所有Windows应用程序的入口。
(9)用快捷键F9既可设置断点,又可取消断点。
(t)
(10)调式程序时,会同时出现Variable窗口和Watch窗口。
4.简答题
(1)简述MFC应用程序的执行过程。
MFC应用程序启动时,首先创建应用程序对象theApp。
这时将自动调用应用程序类的构造函数初始化对象theApp,然后由应用程序框架调用MFC提供的WinMain()主函数。
在WinMain()主函数中,首先通过调用全局函数GetApp()来获取theApp的指针pApp,然后通过该指针调用theApp的成员函数InitInstance()来初始化应用程序。
在应用程序的初始化过程中,同时还构造了文档模板,产生最初的文档、视图和主框架窗口,并生成工具栏和状态栏。
当InitInstance()函数执行完毕后,WinMain()函数将调用成员函数Run(),进入消息处理循环,直到函数Run()收到WM_QUIT消息。
MFC首先调用CWinApp类的成员函数ExitInstance(),然后调用静态对象的析构函数,包括CWinApp对象,最后退出应用程序,将控制权交给操作系统。
在初始化的最后,应用程序将收到WM_PAINT消息,框架会自动调用视图类的OnDraw()函数绘制程序客户区窗口。
这时,应用程序的基本窗口已经生成,应用程序准备接收系统或用户的消息,以便完成用户需要的功能。
如果消息队列中有消息且不是WM_QUIT消息,则将消息分发给窗口函数,以便通过MFC消息映射宏调用指定对象的消息处理函数。
如果消息队列中没有消息,函数Run()就调用函数OnIdle()进行空闲时间的处理。
(2)简述文档/视图与其他类对象的关系。
在MFC应用程序中,文档类和视图类是用户最常用的两个类,它们之间是密切相关的。
文档/视图体系结构是MFC应用程序框架结构的基石,它定义了一种程序结构,这种结构利用文档对象保存应用程序的数据,依靠视图对象控制视图显示数据,文档与视图的关系是一对多的关系,也就是说,文档中的数据可以以不同的方式显示。
MFC在类CDocument和CView中为文档和视图提供了基础结构。
CWinApp、CFrameWnd和其他类与CDocument和CView共同把所有的程序片段连在一起。
文档/视图与其他类对象的关系如下图所示。
(3)简述MFC消息映射机制。
MFC采用消息映射来处理消息。
这种消息映射机制包括一组消息映射宏,用于把一个Windows消息和其消息处理函数联系起来。
MFC应用程序框架提供了消息映射功能,所有从CCmdTarget类派生出来的类都能够拥有自己的消息映射。
(4)消息WM_LBUTTONDOWN的消息映射宏和消息处理函数是什么?
消息WM_LBUTTONDOWN的消息映射宏是ON_WM_LBUTTONDOWN(),消息处理函数是OnRButtonDown()。
(5)如何自定义消息?
如何发送自定义消息?
Windows将所有的消息值分为4段:
0x0000~0x03FF消息值范围段用于Windows系统消息,0x0400~0x7FFF段用于用户自定义的窗口消息,0x8000~0xBFFF段为Windows保留值,0xC000~0xFFFF段用于应用程序的字符串消息。
常量WM_USER(为0x0400)与第一个自定义消息值相对应,用户必须为自己的消息定义相对于WM_USER的偏移值,利用#define语句直接定义自己的消息,如下所示:
#defineWM_USERWM_USER+3;
//自定义消息WM_USER
也可以调用窗口消息注册函数RegisterWindowMessage()来定义一个Windows消息,由系统分配消息一个整数值。
该函数原型为:
UINTRegisterWindowMessage(LPCTSTRlpString);
其中参数lpString是要定义的消息名,调用成功后将返回该消息的ID值。
发送自定义消息消息采用的函数是SendMessage()函数。
(文中未讲清楚)
3.7习题
1.填空题
(1)Windows引入GDI的主要目的是为了实现设备无关性。
(2)与DOS字符方式下的输出文本不同,Windows是按图形方式输出的。
(3)为了体现Windows的设备无关性,应用程序的输出面向一个称之为设备环境的虚拟逻辑设备。
(4)在一个MFC应用程序中获得DC的方法主要有两种:
一种是接受一个参数为指向CD