您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 习题/试题 > MFCWindows应用程序设计复习题.docx
MFCWindows应用程序设计【复习】第1章Windows应用程序基础知识1.Windows程序设计是一种(C)的程序设计模式。A:结构化B:面向对象C:事件驱动方式D:XP2.用户从所有可能的操作中任意选择,被选择的操作会产生某些特定的(),这些事件发生后的结果是向程序中的某些对象发出(),然后这些对象调用相应的(C)来完成特定的操作。A:消息,事件,程序B:消息,命令,消息处理函数C:事件,消息,消息处理函数D:事件,消息,程序3•消息的组成(C)A:消息名称(UINT)和两个参数(WPARAM,LPARAM)和两个参数(HPARAM,LPARAM)4.程序在(B)对消息进行分析A:入口函数(WINMAIN)中B:在窗口过程函数(WNDPROC)中C:收到消息时D:消息发生时5.一个消息(B)A:可以不被窗口接受B:必须由一个窗口接收C:可以由一个或多个窗口接收D:必须由多个窗口接收6.当没有为某消息编写消息处理时(C)A:不进行处理B:程序岀错C:默认的窗口过程进行处理B:消息名称(UINT)和参数(PARAM)C:消息名称D:消息名称(UINT)(UINT)D:无法发出此消息7.应用程序接收到(A)消息时停止接收其他消息A:WM_QUITB:WM_DESTORYC:WM_PAINTD:WM_COMMAND8.下列Windows数据格式中,代表设备句柄的是(B)。A.HWNDB.HDCC.HINSTANCED.HFONT9.典型的Windows窗口程序的流程为:(A)A.注册窗口类・>创建窗口・>显示窗口・>更新窗口・>消息循环B.创建窗口・>注册窗口类・>显示窗口・>更新窗口・>消息循环C.创建窗口・>注册窗口类・>显示窗口・>更新窗口・>消息循环D.注册窗口类・>创建窗口・>更新窗口・>显示窗口・>消息循环10.在WinMain函数的原型中HINSTANCEhlnstance定义的是(A)HINSTANCEhPrevInstance定义的是(B)LPSTRIpCmdLine定义的是(C)intnCmdshow)定义的是(D)A:当前实例句柄B:先前实例句柄C:指向命令行参数的指针D:窗口的显示状态11.以下哪个不是WinMain函数中完成的操作(D)A:注册窗口类B:创建应用程序主窗口C:进入应用程序消息循环D:调用窗口过程函数12.下面说法错误的是(D)A:一个Windows程序可以包含多个窗口过程B:一个窗口过程总是与调用RegisterClass注册的特定窗口类相关联C:CreateWindow函数根据特定窗口类创建一个窗口,但基于一个窗口类,可以创建多个窗口D:窗口过程必须由程序调用,而不是由Windows本身直接调用13.Windows应用程序中使用了各种WindowsAPI函数声明,宏定义,数据类型定义,(D)是主要的包含文件。ASTDIO.HBWINDEF.HCWINUSER.HDWINDOWS.H14.注册窗口类型时,窗口风格各个选项可以用(B)运算符联合表示。AAND(&)BOR(|)C逻辑与(&&)D逻辑或(||)15.在函数CreateWindow()调用返回之后,Window内部(B)A:已经创建了这个窗口,但还未分配內存B:已经创建并分配了内存C:还未真正创建窗口,等待分配内存D:还未真正创建窗口,但已经分配内存16.关于函数ShowWindow(HWNDhwnd,intiCmdShow),下面说法错误的是(C)A:hWnd是窗体句柄B:nCmdShow是窗体显示方式C:nCmdShow与WinMain函数定义的窗体显示方式相同D:nCmdShow与WinMain函数定义的窗体显示方式必须不同17.关于函数UpdateWindow()的说法正确的是(D)A该函数的作用是将窗口重新绘制B调用该函数后,该函数发出WMPAINT消息C该函数将消息发送给窗口函数进行处理D以上答案都正确18.下面关于消息循环的说法错误的是(D)A:Windows为当前运行的每个Windows程序维护一个“消息队列”B:程序通过执行一块被称为“消息循环”的代码从消息队列中取出消息C:消息循环从GetMessage调用开始,它从消息队列中取出一个消息D:GetMessage通常将一个指向msg的MSG结构的指针直接传递给窗口函数WndProc19.GetMessage对于除了WM_QUIT之外的从消息队列中取出的所有消息都返回(A)A:非0值B:0C:1D:NULL20.在(D)之后,WinMain退出消息循环A用户通过单击Close按钮或在系统菜单选择Close发出WM_DESTRO丫消息B结束对任何消息的DispatchMessage调用C通过调用函数PostQuitMessage(O)在程序的消息队列中插入一个WM_QUIT消息DGetMessage取到一个WM_QUIT消息,程序继续执行returnmsg.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功能从底层来说是通过(调用最基本的Win32API)来实现的。32.API是(应用程序编程接口)33.句柄的含义?句柄是一个(通常为32位的)无符号整数(unsignedint),通常用它来标识一个内核对象。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类并需要重写该类的成员函数lnitlnstanceo4.以下哪个消息不属于Windows应用程序的消息来源(B)A:输入消息B:输出消息C:系统消息D:用户消息5.在CWinApp类的关键函数中,负责消息循环的函数是(A)A.RunB.InitlnstanceC.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)oA.CWndB.CViewC.CWinAppD.CCmdTarget11・简述消息映射表的构成,依靠消息映射表的消息处理过程?第3章MFC应用程序框架1.由MFCAppWizard创建的文档类是由()派生来的,视图类是由(C)派生来的。A)CWinApp,CFrameWndB)CView,CDocumentC)CDocument,CViewD)CFrameWnd,CWinApp2.在MFC消息机制中,1个单文档视图应用程序的消息处理优先级顺序是(A)oA.视图、文档、主框架、应用程序B.文档、视图、主框架、应用程序C.应用程序、视图、文档、主框架D.主框架、视图、文档、应用程序3.关于Windows文档类的说法,下列正确的是()A)文档类代表着用户使用的文件B)一个文档类只能对应于一个视图类C)文档类和CFile类都是对文件进行操作D)一个文档类可以对应多个视图类4.多文档界面的文档/视图架构应用程序使用的框架窗口类是:()A)CFrameWndB)CMDIFrameWndC)CSDIChildWndD)CSplitterWnd5.文档/视图结构的分工?文档相当于数据容器,视图相当于查看数据的窗口或是和数据发生交互的窗口。(一个完整的应用一般由四个类组成:CWinApp应用类,CFrameWnd窗口框架类,CDocument文档类,CView视类。)6.简述构成文档/视图结构应用程序框架的四个MFC派生类,并说出它们的功能。假如工程名称为MyPrj,则MFCAppWizard会自动创建一下四个派生类来构成应用程序的框架。.CFrame类的派生类CMainFrame;.CWinApp类的派生类CMyPrjApp;.CDocument类的派生类CMyPrjDoc;.CView类的派生类CMyPrjVieWo其中,CMyPrjDoc类对象用来存储和管理应用程序中的数据;CMainFrame对象与CMyPrjView对象构成了应用程序的界面,CMainFrame对象只是CMyPrjView对象的容器,而CMyPrjView类的对象是用来显示文档与接收用户事件的;CMyPrjApp类的对象是应用程序的全局对象,它是应用程序中各对象的容器,负责创建应用程序界面和消息循环。7.在文档/视图结构的应用程序中,视图类对象是如何获取文档类对象中数据的?答:是依靠视图类的成员函数GetDocument来返回文档对象指针,然后再通过该指针访问文档类的数据成员或函数成员。8.在MFC对程序窗口功能的划分中你受到了什么启发?答:由于简单的MFC应用程序
本文标题:MFCWindows应用程序设计复习题.docx
链接地址:https://www.777doc.com/doc-5980416 .html