MFC Windows应用程序设计复习题
- 格式:doc
- 大小:72.50 KB
- 文档页数:12
一单项选择题试题1 满分值:分状态:已答应用程序可以使用GDI创建3种类型的图形输出,不包括【】位图矢量图形光栅图形文本[我的答案] 光栅图形试题2 满分值:分状态:已答关于工具栏、菜单和加速键的关系,正确的说法是【】工具按钮与菜单必须一一对应工具栏与加速键一一对应工具按钮不必与菜单一一对应菜单与加速键一一对应[我的答案] 工具按钮不必与菜单一一对应试题3 满分值:分状态:已答【】函数用于在指定位置输出字符串:PrintTextOutScanfWrite[我的答案] Print试题4 满分值:分状态:已答下列【】不是MFC消息映射机制有关的宏:DECLARE_MESSAGE_MAPBEGIN_MESSAGE_MAPDECLARE_SERIALEND_MESSAGE_MAP[我的答案] DECLARE_SERIAL试题5 满分值:分状态:已答在视图类中获得文档类对象指针用函数【】:GetDocumentUpdateAllViewsOnUpdateSetModifiedFlag[我的答案] GetDocument试题6 满分值:分状态:已答能间接调用视图类的OnDraw函数的是【】OnTimerLButtonDownSerializeInvalidate[我的答案] Invalidate试题7 满分值:分状态:已答实心画刷只需要定义【】填充样式填充颜色填充模式填充图案[我的答案] 填充颜色试题8 满分值:分状态:已答【】设置进度条的当前位置SetRangeSetStepSetPosStepIt[我的答案] SetPos试题9 满分值:分状态:已答常见的菜单类型不包括【】。
自动菜单主菜单弹出菜单快捷菜单[我的答案] 自动菜单试题10 满分值:分状态:已答CDialog中的【】成员函数用于成员变量和控件之间的数据传递:ExchangeToDoEXTUpdateData[我的答案] UpdateData试题11 满分值:分状态:已答项目文件的扩展名是【】exedspdswcpp[我的答案] dsp试题12 满分值:分状态:已答滑动条是由滑动块和刻度线构成,按指定增量移动,CSliderCtrl类的成员函数【】代表设置刻度线的疏密程度,配合Autoticks属性使用,每隔一定单位自动显示一条刻度线。
MFC应用程序设计复习资料第1章Windows应用程序基础知识1.Windows是一种应用于微型计算机的操作系统,它为应用程序提供了一个多任务环境,这个环境具有一致的图形化窗口和菜单。
在Windows操作系统上运行的应用程序叫做Windows应用程序。
1.1Windows应用程序的基本概念1.1.1Windows应用程序的界面1.Windows应用程序的一个突出特点是它有一个美观的图形用户界面(GUI),这种图形用户界面与键盘和鼠标的配合,大大方便了用户对应用程序的控制与操作。
2.图形界面是Windows应用程序与用户交换信息的一个“窗口”。
3.简单的Windows应用程序只有一个窗口,而复杂的Windows应用程序可能有多个窗口。
设计一个或一组满足要求的窗口,是Windows应用程序设计中的一项重要任务。
1.1.3Windows的一个特殊数据类型——句柄1.在Windows应用程序中,存在着很多诸如窗口、按钮、滚动条等复杂的程序对象和实例。
为了在程序中区分和使用它们,必须对它们进行标识。
为了区别于普通变量的标识,Windows把这种复杂对象的标识叫做“句柄”。
不同Windows对象的句柄具有不同的类型,常用的句柄类有:句柄类型说明句柄类型说明HWND 窗口句柄HDC 图形设备环境句柄HINSTANCE 当前程序应用实例句柄HBITMAP 位图句柄HCURSOR 光标句柄HICON 图标句柄HFONT 字体句柄HMENU 菜单句柄HPEN 画笔句柄HFILE 文件句柄HBRUSH 画刷句柄1.1.4Windows应用程序的数据类型1.Windows应用程序的数据量非常大,为了提高应用程序的可读性,Windows给许多基本数据类型定义了别名,例如:除此之外,Windows应用程序还使用了一些结构类型的数据,例如:typedef struct tag_POINT{LONG x,y;}POINT;结构描述了一个点的位置。
第8章Windows应用程序设计一.选择题1.要使窗体在运行时,显示在屏幕的中央,应设置窗体的【】属性。
A) WindowState B) StartPositionC) CenterScreen D) CenterParent2.在C#程序中,文本框控件的【】属性用来设置其是否是只读的。
A) ReadOnly B) Locked C) Lock D) Style3.要使文本框控件能够显示多行且能自动换行,应设置它的【】属性。
A) MaxLength和Multiline B) Multiline和WordWrapC) PasswordChar和Multiline D) MaxLength和WordWrap4.在使用RichTextBox控件进行文档编辑时,如果希望知道文档自上次设置该控件的内容后,文本框中的内容是否改变,可使用它的【】属性。
A) Modified B) SelectedText C) Undo D) SaveFile5.当用户单击窗体上的命令按钮时,会引发命令按钮的【】事件。
A) Click B) Leave C) Move D) Enter6.要使复选框控件能够显示出三种状态,应首先设置它的【】属性。
A) ThreeState B) Checked C) CheckState D) Indeterminate 7.在Windows应用程序中,如果复选框控件的Checked属性值设置为True,表示【】。
A) 该复选框被选中B) 该复选框不被选中C) 不显示该复选框的文本信息D) 显示该复选框的文本信息8.在Windows应用程序中,可以通过以下【】方法使一个窗体成为MDI窗体。
A) 改变窗体的标题信息B) 在工程的选项中设置其为启动窗体C) 设置窗体的IsMdiContainer属性为True D) 设置窗体的ImeMode属性9.在Windows应用程序中,若要让窗体MyForm显示为对话框模式窗体,必须【】。
Windows程序设计复习题一选择题1 下列程序设计方法中,()是一种基于对象的程序设计方法。
A: MFC程序设计B: 使用WindowsAPI编程C: 使用VisualBasic语言编程 D: 使用C#程序设计语言编程2 MFC程序框架中,最先执行的函数是()。
A: WinMain函数B: CWinApp类的构造函数C: CWinApp类的InitInstance函数D: Cwnd的OnCreate函数3 CWinApp类中用()成员函数实现了对消息环的封装。
A: InitInstance( ) B: Run()C: OnIdle() D: WndProc()4 消息的4个参数中,表示消息类型的参数是()。
A: HWND hwnd B: messageID C: wParam D: lParam5下列各消息中,与程序的菜单命令、工具栏按钮或对话框按钮相对应的消息是()。
A: WM_CHAR B: WM_COMMAND C: WM_CREATE D: WM_PAINT6 MFC消息映射机制中,下列消息映射表BEGIN_MESSAGE_MAP(CGraphicsView, CScrollView)ON_WM_PAINT()END_MESSAGE_MAP()把WM_PAINT消息映射到()。
A: CGraphicsView类OnPaint函数B: CGraphicsView类OnDraw函数。
C: CScrollView类的OnPaint函数D: CScrollView类的OnDraw成员函数。
7 下列MFC类中,不直接支持消息映射的MFC基类是(),A: CCmdTarget B: CWinAPP C: CWnd D: CMap8 下列集合类中,其内部是使用散列表技术实现的MFC类的是()。
A: CArray B: CList C: CMap D: CPtrList9 下列CWnd类成员函数中,用于任何消息的可覆盖函数是()。
一、单项选择题:1.WinMain()函数的工作。
WinMain()函数是Windows程序的入口点在WinMain中进行:注册窗体类、建立窗体、显示窗体、更新窗体、建立消息循环2.非MFC的Windows程序中,不是处理WM_PAINT消息的时候怎样获得客户区的设备环境句柄。
BeginPaint ----------EndPaintGetDC---------------ReleaseDC(成对出现)利用GetDC()函数获取设备环境句柄3.句柄的含义。
句柄是一个(通常为32位的)无符号整数(unsigned int),它代表一个内核对象内核对象在应用层的表示4.在MM_TEXT映射模式下,什么情况下客户坐标和逻辑坐标可能不同。
当窗口客户区有滚动条时客户坐标和逻辑坐标可能不同5.Windows程序的控制流程。
Windows程序没有固定的控制流程,事件驱动程序控制流程6.事件驱动、消息驱动的概念。
事件驱动程序设计是一种全新的程序设计方法,它不是由事件的顺序来控制,而是由事件的发生来控制,而这种事件的发生是随机的、不确定的,并没有预定的顺序,这样就允许程序的的用户用各种合理的顺序来安排程序的流程。
消息是事件到达Windows内部后的称呼7.对话框、控件的作用。
对话框是程序与用户之间进行交互,接收用户输入、并把数据显示出来的一个窗口;控件是用户可与之交互以输入或操作数据的对象。
控件通常出现在对话框中或工具栏上。
8.MFC中怎样处理WM_PAINT消息。
在OnDraw()函数中处理该消息9.GetMessage()函数在什么情况下返回0,从而导致消息循环终止,程序结束。
在接收到WM_QUIT消息时返回010.Windows中,应用程序的输出是怎样进行的。
通过设备描述表DC(Device Context)来进行应用程序与物理设备之间的交互11.MFC中,大多数类的基类都是什么。
CObject类12.一个MFC应用程序必须有且只能有一个从哪个类派生的全局应用程序对象,此对象在运行时刻控制应用程序中所有其他对象的活动。
Windows程序的设计题(含简答题答案)《Windows程序设计》模拟题一.单项选择题1. 在VC++中,项目文件的扩展名是(B)。
A)exe B)dspC)dsw D)cpp2. 在MFC中,利用ClassWizard不能(D)。
A)建立新类B)进行消息映射C)增加类的成员变量D)插入资源3. 当滑块滑动时,滑块条控件将发送滚动消息来通知父窗口,垂直滑动条发送(C)消息。
A)WM_CHAR B)WM_HSCROLLC)WM_VSCROLL D)WM_CHANGE4. 更新菜单状态的消息是( C )。
A)WM_COMMAND B)UPDATEC)UPDATE_COMMAND_UI D)INVALIDATE5. 对于消息队列描述正确的是( D )A)在Windows中只有一个消息系统,即系统消息队列。
消息队列是一个系统定义的数据结构,用于临时存储消息。
B)系统可从消息队列将信息直接发给窗口。
另外,每个正在Windows下运行的应用程序都有自己的消息队列。
C)系统消息队列中的每个消息最终都要被USER模块传送到应用程序的消息队列中去。
应用程序的消息对列中存储了程序的所有窗口的全部消息。
D)以上都正确6. 在MFC中,所有的控件都是(B)类的派生类,都可以作为一个特殊的窗口来处理。
A)CView B)CWndC)CWindow D)CDialog7. 使用GetDC()获取的设备上下文在退出时,必须调用(A)释放设备上下文。
A)ReleaseDC() B)delete()C)DeleteDC() D)Detach()8. 希望菜单无效,应该用CCmdUI类的(A)成员函数。
A)Enable B)SetRadioC)SetCheck D)SetText9. 希望菜单前出现一个“√”,应该用CCmdUI类的(C)成员函数。
A)Enable B)SetRadioC)SetCheck D)SetText10. 下面(A)不是MFC设备环境类CDC类的派生类。
MFC期末复习及答案1简述MFC应用程序的执行过程。
2简述文档/视图与其他类对象的关系。
3简述MFC消息映射机制。
4消息WM_LBUTTONDOWN的消息映射宏和消息处理函数是什么?5如何自定义消息?如何发送自定义消息?6 GDI创建哪几种类型的图形输出?7什么是设备环境?它的主要功能有哪些?8什么是GDI,它有什么功能?MFC将GDI函数封装在哪个类中?9请叙述设备无关性的含义,实现设备无关性需要哪几个环节?10 MFC提供了哪几种设备环境类?它们各自有什么用途?11 简述传统的SDK获取设备环境的方法。
12 简述创建和使用自定义画笔的步骤。
13 简述采用MFC方法编程时,显示一个DDB位图的步骤。
14 简述菜单设计的主要步骤。
15 为应用程序创建快捷菜单主要有哪些方法?16 如何动态创建菜单?17 创建工具栏的基本步骤有哪些?18 简述MFC创建状态栏所做的工作。
19 简述创建和使用模态对话框的主要步骤。
20 如何向对话框模板资源添加控件?如何添加与控件关联的成员变量?21 什么是DDX和DDV?编程时如何使用MFC提供的DDX功能?22 简述创建属性页对话框的主要步骤。
23 在应用程序中访问控件的方法有哪些?24 单选按钮控件如何成组?25组合框与列表框相比有什么不同?如何给组合框添加初始的列表项?26 通过哪几个主要成员函数完成文档与视图之间的相互作用?并简述这些成员函数的功能。
27简述文档序列化与一般文件处理的区别。
28.如何让用户定义的类支持序列化?1简述MFC应用程序的执行过程。
MFC应用程序启动时,首先创建应用程序对象theApp。
这时将自动调用应用程序类的构造函数初始化对象theApp,然后由应用程序框架调用MFC提供的WinMain( )主函数。
在WinMain( )主函数中,首先通过调用全局函数GetApp( )来获取theApp的指针pApp,然后通过该指针调用theApp的成员函数InitInstance( )来初始化应用程序。
MFC Windows应用程序设计【复习】第1章Windows应用程序基础知识1. Windows 程序设计是一种( C ) 的程序设计模式。
A:结构化B:面向对象C:事件驱动方式D:XP2. 用户从所有可能的操作中任意选择,被选择的操作会产生某些特定的( ) ,这些事件发生后的结果是向程序中的某些对象发出( ),然后这些对象调用相应的( C )来完成特定的操作。
A:消息,事件,程序B:消息,命令,消息处理函数C:事件,消息,消息处理函数D:事件,消息,程序3. 消息的组成(C)A:消息名称(UINT)B:消息名称(UINT)和参数(PARAM)C:消息名称(UINT)和两个参数(WPARAM,LPARAM)D:消息名称(UINT)和两个参数(HPARAM,LPARAM)4. 程序在( B) 对消息进行分析A:入口函数(WINMAIN)中B:在窗口过程函数(WNDPROC)中C:收到消息时D:消息发生时5. 一个消息( B )A:可以不被窗口接受B:必须由一个窗口接收C:可以由一个或多个窗口接收D:必须由多个窗口接收6. 当没有为某消息编写消息处理时( C )A:不进行处理B:程序出错C:默认的窗口过程进行处理D:无法发出此消息7. 应用程序接收到( A )消息时停止接收其他消息A:WM_QUIT B:WM_DESTORYC:WM_PAINT D:WM_COMMAND8. 下列Windows数据格式中,代表设备句柄的是(B)。
A. HWNDB. HDCC. HINSTANCED. HFONT9. 典型的Windows窗口程序的流程为:(A)A. 注册窗口类->创建窗口->显示窗口->更新窗口->消息循环B. 创建窗口->注册窗口类->显示窗口->更新窗口->消息循环C. 创建窗口->注册窗口类->显示窗口->更新窗口->消息循环D. 注册窗口类->创建窗口->更新窗口->显示窗口->消息循环10. 在WinMain函数的原型中HINSTANCE hInstance 定义的是(A)HINSTANCE hPrevInstance定义的是(B)LPSTR lpCmdLine定义的是(C)int nCmdshow)定义的是(D)A:当前实例句柄B:先前实例句柄C:指向命令行参数的指针D:窗口的显示状态11. 以下哪个不是WinMain函数中完成的操作(D)A:注册窗口类B:创建应用程序主窗口C:进入应用程序消息循环D:调用窗口过程函数12. 下面说法错误的是(D)A:一个Windows程序可以包含多个窗口过程B:一个窗口过程总是与调用RegisterClass注册的特定窗口类相关联C:CreateWindow函数根据特定窗口类创建一个窗口,但基于一个窗口类,可以创建多个窗口D:窗口过程必须由程序调用,而不是由Windows本身直接调用13. Windows应用程序中使用了各种Windows API函数声明,宏定义,数据类型定义,(D)是主要的包含文件。
WINDOW程序设计复习题前言:从给定的答案中选出正确答案添入括号中:(1)Windows操作系统同时也是一个大的函数库,其中包含了数以千计的函数,这些函数能完成各种各样的功能,包括窗口管理、图形设备接口、媒体控制、()和系统扩展。
A 内存管理B 存储器管理C 网络通信管理D 系统安全控制(2)Windows操作系统同时也是一个大的函数库,其中包含了数以千计的函数,这些函数都被封装在一个()中,这个()就是Windows应用程序编程接口(Windows Application Progrmming Interface),简称Windows API。
A 类B 接口C 动态链接库D 结构体(3)基于()的应用程序具有和Windows操作系统的良好整合性,从而大大提高了软件的运行性能。
A 机器语言B MS—DOSC Windows APID Microsoft Visual C++答案:(1)A (2)B (3)C第一章Windows程序设计概述1.Microsoft Windows是一个应用于微型计算机上的基于(d)的操作系统。
A:cpu B:驱动程序C:内核D:图形用户界面2. 它为应用程序提供了一个由一致的图形用户界面构成的(a)环境。
A:多任务B:多窗口C:多用户D:多彩色3. 目前应用得最为广泛的操作系统是Microsoft公司推出的(b)操作系统,A: unix B:Windows 98 C:mac D:windows20004. Windows程序设计是一种(c) 的程序设计模式。
A:结构化B:面向对象C:事件驱动方式D:XP5. 用户从所有可能的操作中任意选择,被选择的操作会产生某些特定的(c) ,这些事件发生后的结果是向程序中的某些对象发出(c),然后这些对象调用相应的(c)来完成特定的操作。
A:消息,事件,程序B:消息,命令,消息处理函数C:事件,消息,消息处理函数 D:事件,消息,程序6. Windows应用程序在本质上是(d)的A:可执行B:二进制形式C:结构化D:面向对象7. 消息的组成(c)A:消息名称(UINT)B:消息名称(UINT)和参数(PARAM)C:消息名称(UINT)和两个参数(WPARAM,LPARAM)D:消息名称(UINT)和两个参数(HPARAM,LPARAM)8. 程序在(b) 对消息进行分析A:入口函数(WINMAIN)中B:在窗口的过程(WNDPROC)中C:收到消息时D:消息发生时9 一个消息(b)A:可以不被窗口接受B:必须由一个窗口接收C:可以由一个或多个窗口接收D:必须由多个窗口接收10 当没有为某消息编写消息处理时(c)A:不进行处理B:程序出错C:默认的窗口过程进行处理D:无法发出此消息11系统通过(d)在整个系统中唯一标识一个窗口A:B:C:D:窗口句柄12 系统是根据()来确定要接收消息的窗口的(a)A:消息的接收句柄B:C:D:13 当同时有多个消息时,系统将(c)A:B:C:将消息放入消息队列中D:14 windows 3.x属于(b)系统A:B:协同式多任务C:D:抢先式多任务系统15 windows 98属于(d)系统A:B:协同式多任务C:D:抢先式多任务系统16 windows NT属于(d)系统A:B:协同式多任务C:D:抢先式多任务系统应用程序通过(b)的程序结构来实现的A:B:消息循环C:D:应用程序接收到(a)消息时停止接收其他消息A:WM_QUIT B:WM_DESTORY C:WM_PAINT D:WM_COMMAND 以下哪个消息不属于Windows 应用程序的消息来源(b)A:输入消息B:输出消息C:系统消息D:用户消息MFC功能从底层来说是通过(d)来实现的。
1-1 什么是Windows SDK程序?答:使用软件开发工具包开发出来的Windows应用程序叫做Windows SDK程序。
1-3 打开windows.h文件,看一下Windows系统的句柄是什么数据类型的?答:整型。
1-5 什么是事件?答:能触发程序做出相应反应的因素或动作叫做“事件”。
1-6 如何显示和更新窗口?答:调用函数ShowWindow显示窗口,调用函数UpdateWindows更新窗口。
1-7 什么是消息循环?答:在创建了窗口的应用程序中,应用程序将不断地从消息队列中获取消息,并将消息指派给指定的窗口处理函数来处理,然后再回来从消息队列获取消息,这个不断重复的工作过程叫做消息循环。
1-9 说明Windows应用程序的主函数、窗口函数与Windows系统之间的关系。
答:Windows应用程序的主函数和窗口函数都是系统调用的函数,主函数是在应用程序启动时由系统首先调用的函数,而窗口函数是主函数在消息循环中获得消息并把消息派送给系统之后,由系统调用的用来处理消息的函数。
2-1 在窗体类CframeWnd中需要封装哪些成员?答:在窗体类CframeWnd中要封装窗口句柄、窗口类的定义、注册窗口类、创建窗口、显示更新窗口。
2-2 应用程序类CwinApp应该具备那些主要功能?答:创建、显示应用程序的窗口和建立消息循环。
2-3 在MFC程序设计中,如果要建立拥有自己风格的主窗口,应该重写什么函数。
答:继承CWinAPP类并需要重写该类的成员函数InitInstaance。
3-3 简述构成文档/视图结构应用程序框架的四个MFC派生类,并说出它们的功能。
答:假如工程名称为MyPrj则MFC AppWizard会自动创建一下四个派生类来构成应用程序的框架。
.CFrame类的派生类CMainFrame;.CWinApp类的派生类CMyPrjApp;.CDocument类的派生类CMyPrjDoc;.CView类的派生类CMyPrjView。
实用软件技术复习题1 在用API编写Windows程序时,要有一个入口函数,它的函数名和功能是什么?答:在Windows编程中这个入口函数就是WinMain()。
WinMain函数主要用于初始化程序,显示主窗口,并进入一个消息循环。
2 在Windows程序的入口函数WinMain()中有一个消息循环,代码如下:while (GetMessage(&msg)){TranslateMessage(&msg);DispatchMessage(&msg);}上述代码中个函数作用是什么?答:通过GetMessage函数从线程的消息队列中取出消息,用TranslateMessage函数将消息解释后,再调用DispatchMessage将该消息分发至相应的窗口过程(WndProc)进行处理。
3 Windows程序中有一个窗口函数,该函数的作用是什么?答:每一个窗口都应该有一个“窗口函数”(window procedure,或称window function)。
如果窗口获得一个消息,则这个窗口函数必须判断消息的类别,决定处理的方式。
4 在Windows系统中分别定义了两个数据类型用来表示应用程序对象的句柄及窗口对象的句柄,这两个数据类型是什么?答:应用程序:数据类型HINSTANCE,也常把HINSTANCE的变量命名为hInstance,窗口:数据类型为HWND(也写成HWindow或HWND)。
5 利用AppWizard生成的多文档应用程序包括哪几个主要的类?答:主要是CWinApp, CDocument, CView, CFrameWnd派生,另外再加上CDocTemplate, 这5个类构成了大部分MFC应用程序的核心,6 MFC类库可分为哪两部分?答:MFC类库可以分为两部分,一部分是MFC类,另一部分是全局函数(变量)和宏。
7 MFC中下列类的类名分别是什么?应用程序类(CWinApp)、视图类(CView)、文档类(CDocument)、窗口类(CWnd)、主框架窗口类(CFrameWnd)、文档模板类(CDocTemplate)、对话框类(CDialog)、异常类(CException)、字符串类(CString)、菜单类(CMenu)、工具栏类(CToolBar)、状态栏类(CStatusBar)、静态控件类(CStatic)、按钮控件类(CButton)、编辑控件类(CEdit)、列表框控件类(CCListBox)、组合框控件类(CComboBox)、滚动条控件类(CScrollBar)。
第一章:1、windows应用程序的概念和特点?答:windows是一种更操作系统,以windows作为平台运行的应用程序叫做windows应用程序,它的一个突出特点树一个美观的图形用户界面(GUI)。
2、什么是API函数?答:可以在应用程序中调用的,用C语言编写,有操作系统提供,用户可以使用的函数,有窗口管理函数、图形设备函数和系统服务函数。
3、事件。
消息的概念?答:触发计算机程序作出向反应的刺激叫事件;描述各种信息的结构,对事件得的描述。
4、Windows系统主函数、窗口函数的关系?答:主函数和窗口函数都是有windows系统来调用的函数,只不过主函数是应用程序启动之后,系统首先调用的函数,而窗口函数是主函数在获得消息并把消息发送个系统之后,有系统产生事件的窗口所使用的窗口类型提供的指针调用的函数。
5、主函数的任务?答:创建并显示窗体和实现消息循环。
其中在创建显示窗体中还应有三步即注册窗口、创建窗口和显示窗口。
第二章:1、什么是消息映射表?答:消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。
一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向Windows发出一个通知,告诉应用程序某个事情发生了,系统在发生输入事件时产生消息。
这样消息映射表就是将各类信息及处理函数指针规范统一的填写到表中。
2、消息映射WM_LBUTTONDOWN消息为例说明用宏声明实现?答:public:afx_msg void OnLButtonDown()//窗口类声名中BEGIN_MESSAGE_MAP(CMyWnd,CFrameWnd) //消息映射的实现ON_WM_LBUTTONDOWN()END_MESSAGE_MAP()3、在窗口类CFrameWnd中需要封装哪些成员?答:需要封装窗口句柄、窗口类的定义、注册窗口类、创建窗口、显示更新窗口。
4、在MFC程序设计中,如果要建立拥有自己风格的主窗口,应该重写什么函数?答:继承CWinApp类并需要重写的成员函数为InitInstance。
Windows⾼级应⽤编程技术复习题_简答题_名词解释简答题1WinMain()函数的⼯作。
WinMain()函数是Windows程序的⼊⼝点在WinMain中进⾏注册窗体类、建⽴窗体、显⽰窗体、更新窗体、建⽴消息循环2MFC的Windows程序中,WM_PAINT消息中怎样获得客户区的设备环境句柄。
和不是WM_PAINT消息中怎样获得客户区的设备环境句柄。
BeginPaint ----------EndPaint GetDC---------------ReleaseDC(成对出现)利⽤GetDC函数获取设备环境句柄3柄的含义。
句柄是⼀个通常为32位的⽆符号整数(unsigned int),它代表⼀个内核对象,是内核对象在应⽤层的表⽰。
4MM_TEXT映射模式下,什么情况下客户坐标和逻辑坐标可能不同。
当窗⼝客户区有滚动条时客户坐标和逻辑坐标可能不同5事件驱动程序设计是⼀种全新的程序设计⽅法,它不是由事件的顺序来控制,⽽是由事件的发⽣来控制,⽽这种事件的发⽣是随机的、不确定的、并没有预定的顺序。
这样就允许程序的的⽤户⽤各种合理的顺序来安排程序的流程。
消息是事件到达Windows内部后的称呼6GetMessage()函数在什么情况下返回0在接收到WM_QUIT消息时返回07Windows中通过设备描述表DC(Device Context)来进⾏应⽤程序与物理设备之间的交互8WM_PAINT不会被⾃动调⽤,这时需要怎样间接调⽤它。
使⽤InvalidateRect()调⽤9OnKeyDown(UINT nChar,UINT nRepCnt,UINT nFlags)中的主要参数。
参数UINT nChar指按下按键的虚拟键码;nRepCnt 按键按下的次数;nFlags有没有其他键同时被按下;如shift、ctrl、Alt10DC中的SetROP2()的作⽤。
设定绘图模式11.rc的⽂件是什么。
资源⽂件12GDI绘图函数所使⽤的参数。
一、单项选择题:1.WinMain()函数的工作。
WinMain()函数是Windows程序的入口点2.非MFC的Windows程序中,不是处理WM_PAINT消息的时候怎样获得客户区的设备环境句柄。
利用GetDC()函数获取设备环境句柄3.句柄的含义。
句柄是一个(通常为32位的)无符号整数(unsigned int),它代表一个内核对象4.在MM_TEXT映射模式下,什么情况下客户坐标和逻辑坐标可能不同。
当窗口客户区有滚动条时客户坐标和逻辑坐标可能不同5.Windows程序的控制流程。
Windows程序没有固定的控制流程6.事件驱动、消息驱动的概念。
事件驱动程序设计是一种全新的程序设计方法,它不是由事件的顺序来控制,而是由事件的发生来控制,而这种事件的发生是随机的、不确定的,并没有预定的顺序,这样就允许程序的的用户用各种合理的顺序来安排程序的流程。
7.对话框、控件的作用。
对话框是程序与用户之间进行交互,接收用户输入、并把数据显示出来的一个窗口;控件是用户可与之交互以输入或操作数据的对象。
控件通常出现在对话框中或工具栏上。
8.MFC中怎样处理WM_PAINT消息。
在OnDraw()函数中处理该消息9.GetMessage()函数在什么情况下返回0,从而导致消息循环终止,程序结束。
在接收到WM_QUIT消息时返回010.Windows中,应用程序的输出是怎样进行的。
通过设备描述表DC(Device Context)来进行应用程序与物理设备之间的交互11.MFC中,大多数类的基类都是什么。
CObject类12.一个MFC应用程序必须有且只能有一个从哪个类派生的全局应用程序对象,此对象在运行时刻控制应用程序中所有其他对象的活动。
CWinApp类13.每次当窗口客户区需要重新绘制时,应用程序框架怎么处理。
发送WM_PAINT消息,调用OnDraw()函数进行重绘14.CDC类的作用。
CDC是设备描述表类的基类,除了一般的窗口显示外,还用于基于桌面的全屏幕绘制和非屏幕显示的打印机输出。
1.使用软件开发工具包开发出来的Windows应用程序,叫做Windows SDK程序2.用来开发Windows SDK 应用程序的软件开发工具包是用C语言编写的一个大型函数库,这个库中的函数叫做API函数3.整型5.能触发程序作出相应反映的因素或动作叫做事件,例如在键盘上按下一个键6.调用函数ShowWindow显示窗口,调用函数UpdateWindow更新窗口7.在创建了窗口的应用程序中,应用程序将要不断地从消息队列中获取消息,并将消息指派给指定的窗口处理函数来处理,然后再回来从消息队列中获取消息,这个不断重复的工作过程叫做消息循环8.注册窗口类,创建应用程序的窗口和建立消息循环9.Windows应用程序的主函数和窗口函数都是系统调用的函数,主函数是在应用程序启动时由系统首先调用的函数,而窗口函数是主函数在消息循环中获得消息并把消息派给系统之后,由系统调用的用来处理消息的函数1.在窗口类CFrameWnd中要封装窗口句柄,窗口类的定义,注册窗口类,创建窗口和显示更新窗口2.创建,显示应用程序的窗口和建立消息循环3.继承CWinApp类并需要重写该类的成员函数InitInstance4.在Windows SDK应用程序中的窗口函数中,是采用switch-case 分支结构实现来实现消息的处理,这种方式不适合面向对象设计的要求.因此MFC建立了一套自己的消息映射机制—消息映射表.4.是依靠视图类的成员函数GetDocument来返回文档对象指针,然后再通过该指针来访问文档类的数据成员或函数成员的1.为了屏蔽硬件输出设备的多样性,Windows系统为程序员提供了一个可以操作这些硬件却与硬件无关的接口,于是就可以把对不同设备的操作方法统一起来lientDC CMetaFileDC CPaintDC CWindowDC3.使用CDC的成员函数SelectObject把绘图工具载入设备描述环境2.Hello C++1.单文单界面多文档界面基于对话框的界面2.用户使用应用程序时,如果该程序一次只能打开一个文档,那么这种程序就叫做SDI界面的程序,反之就叫做MDI界面的程序3.6.通知文档所对应的所有窗口同时进行重绘7.因为应用程序的所有拆分窗口显示的应该是同一个文档,所以当文档发生变化时,该文档所对应的窗口当然要同时更新显示以正确地反映文档的内容8.无效显示区一般定义为窗口用户区上的一个矩形区域,这个区域应覆盖所有因文档发生变化而需要重绘的部分,当程序需要重新绘制一个图形时,只要重新绘制该矩形内部的图形就可以了1.根据产生鼠标消息是鼠标光标所处的位置,鼠标消息分为两类:客户区鼠标消息和非客户区鼠标消息.在应用程序窗口中,用户可以绘图的部分叫做客户区或用户区,而除此之外的区域叫做非客户区.鼠标在客户区产生的小心叫做客户区鼠标消息,在非客户区产生的消息叫做非客户区鼠标消息.1.资源是一种数据.2. 在文本编辑器中直接对资源脚本文件和资源头文件进行编辑使用C++的资源编辑器对资源脚本文件和资源头文件进行编辑3.用户选中菜单项时,会发出WM_COMMAND消息,系统根据菜单项的标识ID来识别是哪一个菜单项发出的消息1.序列化,就是指应用程序可以把对象的当前状态,以文件的形式写入永久性存储体中,在需要时还可以从永久性存储体中读取它,并可以在应用程序中重建对象的过程具有以上能力的对象叫做永久性对象2宏ARE_SERIAL和IMPLEMENT_SERIAL1.首先在使用控件的类中声明控件,在合适的位置创建对象,然后向应用程序的消息映射中添加需要的消息,最后实现消息响应函数3因为在一般的情况下都是为某一窗口对象创建控件,所以必须调用Create函数创建控件时,在控件的父窗口参数中要将this作为参数5控件标识符的作用是用来区分应用程序中的不同控件,一般情况下,创建控件的最佳位置在OnCreate成员函数用来描述对话框外观及对话框上控件布局的文本文件叫做对话框模版资源文件1.CDialog2.通常在类CDialog的OnInitDig成员函数中进行对话框的初始化.这个函数在对话框启动后,且还没有显示的时候被调用5.模式对话框和非模式对话框.它们的区别:模式对话框直到退出对话框才返回应用程序,非模式对话框可以与应用程序同时工作。
MFC课后简答题(1~11章)第⼀章1、什么是Windows SDK程序?使⽤SDK开发出来的Windows应⽤程序,叫做Windows SDK程序2、什么是Windows API函数?为了设计Windows 应⽤程序,Windows 提供了⼤量预定义的⽤C语⾔编写的函数3、查看windows.h⽂件,说明Windows系统的句柄的类型。
整型4、窗⼝句柄、当前程序应⽤实例句柄、设备环境句柄5、什么是事件?试举例说明。
能触发程序作出相应反映的刺激叫做事件,例如在键盘上按下⼀个键6、如何显⽰和更新窗⼝?调⽤函数ShowWindow显⽰窗⼝,调⽤函数UpdateWindow更新窗⼝7、什么是消息循环?在创建了窗⼝的应⽤程序中,应⽤程序将要不断地从消息队列中获取消息,并将消息指派给指定的窗⼝处理函数来处理,然后再回来从消息队列中获取消息,这个不断重复的⼯作过程叫做消息循环8、Windows应⽤程序的主函数有哪3个主要任务?注册窗⼝类、创建应⽤程序的窗⼝和建⽴消息循环(注:如果题⽬问有哪2个主要任务,应该答后两个)9、说明Windows应⽤程序的主函数,窗⼝函数与Windows系统之间的关系。
主函数和窗⼝函数都是Windows系统调⽤的函数;主函数是应⽤程序启动后,系统⾸先调⽤的函数;窗⼝函数是主函数在消息循环中获得消息并把消息发送给系统之后,由系统调⽤函数。
第⼆章1、在窗⼝类CFrameWnd中需要封装哪些成员?窗⼝句柄,窗⼝类的定义,注册窗⼝类,创建窗⼝和显⽰更新窗⼝(注:对应书上P16 //窗体类的声明这⼀段代码)2、应⽤程序类CWinApp应该具备哪些主要功能?注册、创建、显⽰应⽤程序的窗⼝;建⽴消息循环3、在MFC程序设计中,如果要建⽴拥有⾃⼰的风格的主窗⼝,应该重写什么函数?在CWinApp的派⽣类中重写InitInstance函数4、什么是消息映射表?在MFC中,能够根据消息取得消息处理函数的表,叫做消息映射表。
MFC Windows应用程序设计【复习】第1章Windows应用程序基础知识1. Windows 程序设计是一种( C ) 的程序设计模式。
A:结构化B:面向对象C:事件驱动方式D:XP2. 用户从所有可能的操作中任意选择,被选择的操作会产生某些特定的( ) ,这些事件发生后的结果是向程序中的某些对象发出( ),然后这些对象调用相应的( C )来完成特定的操作。
A:消息,事件,程序B:消息,命令,消息处理函数C:事件,消息,消息处理函数D:事件,消息,程序3. 消息的组成(C)A:消息名称(UINT)B:消息名称(UINT)和参数(PARAM)C:消息名称(UINT)和两个参数(WPARAM,LPARAM)D:消息名称(UINT)和两个参数(HPARAM,LPARAM)4. 程序在( B) 对消息进行分析A:入口函数(WINMAIN)中B:在窗口过程函数(WNDPROC)中C:收到消息时D:消息发生时5. 一个消息( B )A:可以不被窗口接受B:必须由一个窗口接收C:可以由一个或多个窗口接收D:必须由多个窗口接收6. 当没有为某消息编写消息处理时( C )A:不进行处理B:程序出错C:默认的窗口过程进行处理D:无法发出此消息7. 应用程序接收到( A )消息时停止接收其他消息A:WM_QUIT B:WM_DESTORYC:WM_PAINT D:WM_COMMAND8. 下列Windows数据格式中,代表设备句柄的是(B)。
A. HWNDB. HDCC. HINSTANCED. HFONT9. 典型的Windows窗口程序的流程为:(A)A. 注册窗口类->创建窗口->显示窗口->更新窗口->消息循环B. 创建窗口->注册窗口类->显示窗口->更新窗口->消息循环C. 创建窗口->注册窗口类->显示窗口->更新窗口->消息循环D. 注册窗口类->创建窗口->更新窗口->显示窗口->消息循环10. 在WinMain函数的原型中HINSTANCE hInstance 定义的是(A)HINSTANCE hPrevInstance定义的是(B)LPSTR lpCmdLine定义的是(C)int nCmdshow)定义的是(D)A:当前实例句柄B:先前实例句柄C:指向命令行参数的指针D:窗口的显示状态11. 以下哪个不是WinMain函数中完成的操作(D)A:注册窗口类B:创建应用程序主窗口C:进入应用程序消息循环D:调用窗口过程函数12. 下面说法错误的是(D)A:一个Windows程序可以包含多个窗口过程B:一个窗口过程总是与调用RegisterClass注册的特定窗口类相关联C:CreateWindow函数根据特定窗口类创建一个窗口,但基于一个窗口类,可以创建多个窗口D:窗口过程必须由程序调用,而不是由Windows本身直接调用13. Windows应用程序中使用了各种Windows API函数声明,宏定义,数据类型定义,(D)是主要的包含文件。
A STDIO.HB WINDEF.HC WINUSER.HD WINDOWS.H14. 注册窗口类型时,窗口风格各个选项可以用(B)运算符联合表示。
A AND(&)B OR(|)C 逻辑与(&&)D 逻辑或(||)15. 在函数CreateWindow()调用返回之后,Window内部(B)A:已经创建了这个窗口,但还未分配内存B:已经创建并分配了内存C:还未真正创建窗口,等待分配内存D:还未真正创建窗口,但已经分配内存16. 关于函数ShowWindow(HWND hwnd,int iCmdShow),下面说法错误的是(C)A:hWnd是窗体句柄B:nCmdShow是窗体显示方式C:nCmdShow与WinMain函数定义的窗体显示方式相同D:nCmdShow与WinMain函数定义的窗体显示方式必须不同17. 关于函数UpdateWindow()的说法正确的是(D)A 该函数的作用是将窗口重新绘制B 调用该函数后,该函数发出WM_PAINT消息C 该函数将消息发送给窗口函数进行处理D 以上答案都正确18. 下面关于消息循环的说法错误的是(D)A:Windows为当前运行的每个Windows程序维护一个“消息队列”B:程序通过执行一块被称为“消息循环”的代码从消息队列中取出消息C:消息循环从GetMessage调用开始,它从消息队列中取出一个消息D:GetMessage通常将一个指向msg的MSG结构的指针直接传递给窗口函数WndProc19. GetMessage对于除了WM_QUIT之外的从消息队列中取出的所有消息都返回(A)A:非0值B:0 C:1 D:NULL20. 在(D)之后,WinMain退出消息循环A 用户通过单击Close按钮或在系统菜单选择Close发出WM_DESTROY消息B 结束对任何消息的DispatchMessage调用C 通过调用函数PostQuitMessage(0)在程序的消息队列中插入一个WM_QUIT 消息D GetMessage取到一个WM_QUIT消息,程序继续执行return msg.wParam21. 下面说法错误的是(B)A:窗口过程接受的每一个消息都是用一个数值来表示的B:窗口过程在处理消息时,必须返回1C:窗口过程不予处理的所有消息应该被传给名为DefWindowProc的Windows 函数。
D:从DefWindowProc函数返回的值必须由窗口过程返回22. 下面哪一步确定了在窗口中的客户区域中显示什么,以及在窗口中怎样响应用户输入(D)A 注册窗口类B 创建窗口C 显示窗口D 窗口过程23. 关于窗口过程的说法正确的是(C)A 一个窗口过程能处理基于同一个窗口类创建的多个窗口的消息B 一个窗口过程只能处理基于同一个窗口类创建的一个窗口的消息C一个窗口过程能处理基于多个窗口类创建的多个窗口的消息D一个窗口过程只能处理基于多个窗口类创建的一个窗口的消息24. 关闭窗口时产生的消息(D)A、WM_KEYDOWNB、WM_CREATC、WM_DESTROYD、WM_CLOSE25. 由CreateWindow函数发出的消息(B)A、WM_KEYDOWNB、WM_CREATC、WM_DESTROYD、WM_CLOSE26. 由PostQuitMessage函数发出的消息(A)A、WM_QUITB、WM_CREATC、WM_DESTROYD、WM_CLOSE27. 包含一个消息的全部信息,是消息发送的格式的数据结构是(MSG)28. 系统通过(窗口句柄hwnd)在整个系统中唯一标识一个窗口29. 系统是根据(消息的接收句柄)来确定要接收消息的窗口的30. 当同时有多个消息时,系统将(将消息放入消息队列中)31. MFC功能从底层来说是通过(调用最基本的Win32 API)来实现的。
32. API是(应用程序编程接口)33. 句柄的含义?句柄是一个(通常为32位的)无符号整数(unsigned int),通常用它来标识一个内核对象。
34.事件驱动、消息驱动的概念?事件驱动程序设计是一种全新的程序设计方法,它不是由事件的顺序来控制,而是由事件的发生来控制,而这种事件的发生是随机的、不确定的,并没有预定的顺序,这样就允许程序的的用户用各种合理的顺序来安排程序的流程。
35.GetMessage()函数在什么情况下返回0,从而导致消息循环终止,程序结束?在接收到WM_QUIT消息时返回036.主控函数WinMain()建立消息循环的代码?While(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispathMessage(&msg);}37. 说明Windows应用程序的主函数、窗口函数与Windows系统之间的关系?Windows应用程序的主函数和窗口函数都是系统调用的函数,主函数是在应用程序启动时由系统首先调用的函数,而窗口函数是主函数在消息循环中获得消息并把消息派送给系统之后,由系统调用的用来处理消息的函数。
第2章windows应用程序的类封装1. 在窗体类CFrameWnd中需要封装哪些成员?答:在窗体类CFrameWnd中要封装窗口句柄、窗口类的定义、注册窗口类、创建窗口、显示更新窗口。
2. 应用程序类CwinApp应该具备那些主要功能?答:创建、显示应用程序的窗口和建立消息循环。
3. 在MFC程序设计中,如果要建立拥有自己风格的主窗口,应该重写什么函数。
答:继承CWinApp类并需要重写该类的成员函数InitInstance。
4. 以下哪个消息不属于Windows 应用程序的消息来源(B)A:输入消息B:输出消息C:系统消息D:用户消息5. 在CWinApp类的关键函数中,负责消息循环的函数是(A)A. RunB. InitInstanceC. OnPaintD. WndProc6. 下列哪个宏用于处理用户自定义消息?(A)A. ON_COMMANDB. ON_MESSAGEC. ON_CONTROLD. ON_NOTIFY7. 下列不属于MFC消息的类型的是(D)A) 窗口消息B) 控件通知消息C) 命令消息D) 循环消息8. 下列关于Windows消息机制,说法正确的是(C)。
A. 具体的应用程序截获相应的消息,并进行处理B. 窗口截获消息,并处理所有的消息C. 窗口截获消息,按照消息类型进行传递,由具体的对象处理D. 在Windows中,消息会传递到所有窗口9. 下列哪个MFC中的宏与消息映射无关?(A)A. DECLARE_DYNAMICB. DECLARE_MESSAGE_MAPC. ON_COMMANDD. END_MESSAGE_MAP10. 在MFC中,定义消息映射架构的基类是(D)。
A. CWndB. CViewC. CWinAppD. CCmdTarget11. 简述消息映射表的构成,依靠消息映射表的消息处理过程?第3章MFC应用程序框架1. 由MFC AppWizard创建的文档类是由()派生来的,视图类是由(C)派生来的。
A)CWinApp,CFrameWnd B)CView,CDocumentC)CDocument,CView D) CFrameWnd, CWinApp2. 在MFC消息机制中,1个单文档视图应用程序的消息处理优先级顺序是(A)。
A. 视图、文档、主框架、应用程序B. 文档、视图、主框架、应用程序C. 应用程序、视图、文档、主框架D. 主框架、视图、文档、应用程序3. 关于Windows文档类的说法,下列正确的是()A) 文档类代表着用户使用的文件B) 一个文档类只能对应于一个视图类C) 文档类和CFile类都是对文件进行操作D) 一个文档类可以对应多个视图类4. 多文档界面的文档/视图架构应用程序使用的框架窗口类是:()A) CFrameWndB) CMDIFrameWndC) CSDIChildWndD) CSplitterWnd5. 文档/视图结构的分工?文档相当于数据容器,视图相当于查看数据的窗口或是和数据发生交互的窗口。