




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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_QUITB:WM_DESTORYC:WM_PAINTD: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.H 14. 注册窗口类型时,窗口风格各个选项可以用(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: 0C: 1D: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_KEYDOWN B、WM_CREATC、WM_DESTROY D、WM_CLOSE25. 由CreateWindow函数发出的消息(B )A、WM_KEYDOWN B、WM_CREATC、WM_DESTROY D、WM_CLOSE26. 由PostQuitMessage函数发出的消息(A )A、WM_QUIT B、WM_CREATC、WM_DESTROY D、WM_CLOSE27. 包含一个消息的全部信息,是消息发送的格式的数据结构是(MSG)28. 系统通过(窗口句柄hwnd)在整个系统中唯一标识一个窗口29. 系统是根据(消息的接收句柄)来确定要接收消息的窗口的30. 当同时有多个消息时,系统将(将消息放入消息队列中)31. MFC功能从底层来说是通过(调用最基本的 Win32 API)来实现的。32. API是(应用程序编程接口)33. 句柄的含义?句柄是一个(通常为32位的)无符号整数(unsigned int),通常用它来标识一个内核对象。34事件驱动、消息驱动的概念?事件驱动程序设计是一种全新的程序设计方法,它不是由事件的顺序来控制,而是由事件的发生来控制,而这种事件的发生是随机的、不确定的,并没有预定的顺序,这样就允许程序的的用户用各种合理的顺序来安排程序的流程。35GetMessage()函数在什么情况下返回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.Run B.InitInstance C.OnPaint D.WndProc6.下列哪个宏用于处理用户自定义消息?(A )A.ON_COMMAND B.ON_MESSAGE C.ON_CONTROL D.ON_NOTIFY7.下列不属于MFC消息的类型的是( D )A)窗口消息 B)控件通知消息C)命令消息 D)循环消息8.下列关于Windows消息机制,说法正确的是(C )。A.具体的应用程序截获相应的消息,并进行处理 B.窗口截获消息,并处理所有的消息 C.窗口截获消息,按照消息类型进行传递,由具体的对象处理 D.在Windows中,消息会传递到所有窗口9.下列哪个MFC中的宏与消息映射无关?(A )A.DECLARE_DYNAMIC B.DECLARE_MESSAGE_MAP C.ON_COMMAND D.END_MESSAGE_MAP10.在MFC中,定义消息映射架构的基类是( D )。A.CWnd B.CView C.CWinApp D.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)CFrameWnd B)CMDIFrameWnd C)CSDIChildWndD)CSplitterWnd5. 文档/视图结构的分工?文档相当于数据容器,视图相当于查看数据的窗口或是和数据发生交互的窗口。(一个完整的应用一般由四个类组成:CWinApp应用类,CFrameWnd窗口框架类,CDocument文档类,CView视类。)6. 简述构成文档/视图结构应用程序框架的四个MFC派生类,并说出它们的功能。假如工程名称为MyPrj,则MFC AppWizard会自动创建一下四个派生类来构成应用程序的框架。.CFrame类的派生类CMainFrame;.CWinApp类的派生类CMyPrjApp;.CDocument类的派生类CMyPrjDoc;.CView类的派生类CMyPrjView。其中,CMyPrjDoc类对象用来存储和管理应用程序中的数据;CMainFrame对象与CMyPrjView对象构成了应用程序的界面,CMainFrame对象只是CMyPrjView对象的容器,而CMyPrjView类的对象是用来显示文档与接收用户事件的;CMyPrjApp类的对象是应用程序的全局对象,它是应用程序中各对象的容器,负责创建应用程序界面和消息循环。7. 在文档/视图结构的应用程序中,视图类对象是如何获取文档类对象中数据的?答:是依靠视图类的成员函数GetDocument来返回文档对象指针,然后再通过该指针访问文档类的数据成员或函数成员。8. 在MFC对程序窗口功能的划分中你受到了什么启发?答:由于简单的MFC应用程序框架没有把数据的存储部分和与用户的交互部分分开,所以类违背了面向对象程序设计的“单一职责原则”,从而使窗口类笨重杂乱,没有灵活性。而在文档/视图结构中则由于遵循了“单一职责原则”,从而使文档类和视图类既有分工又有合作,代码清晰,程序架构灵活。第4章 图形1. 下列( C )不属于MFC提供的GDI图形设备类。(A)CPen (B)CBrush(C)CDC (D) CBitmap 2. 下列四个类均从CDC基类派生而来,其中( D )适用与操作图元文件。(A)CPaintDC (B)CClientDC(C)CWindowDC (D) CMetaFileDC3. 下列语句设置字体颜色为绿色,并设置背景色为蓝色,其中正确的为( C)(A)pDC-SetBkMode(TRANSPARENT); pDC-SetTextColor(RGB(0,255,0); pDC-SetBkColor(RGB(0,0,255);(B)pDC-SetTextColor(RGB(0,255,0); pDC-SetBkColor(RGB(0,0,255); pDC-SetBkMode(OPAQUE);(C)pDC-SetTextColor(RGB(0,255,0); pDC-SetBkColor(RGB(0,0,255); (D) pDC-SetTextColor(RGB(0,255,0); pDC-SetBkColor(RGB(0,0,255);pDC-SetBkMode(TRANSPARENT);4.InvalidateRect的作用是( B )A.删除一个矩形B.使一个矩行区域变为无效,从而可以重绘C.使一个矩形区域变为无效,从而释放部分GDI资源D.擦除一个矩形区域5.以下函数中不受画刷影响的函数是:( C )A.RectangleB.Ellipse C.LineToD.Polygon6.以下选项中,GDI不能支持的是:( B )A.位图B.Flash动画C.直线和曲线D.文字7. 在MFC中封装的CDC基类中,提供了丰富的图形绘制的成员函数,其中:绘制一条直线段,并将绘图初始位置设置为线段终点的成员函数名为:( ) ;绘制一个矩形的成员函数名为:( ),在一个指定位置,输出一个字符串的成员函数名为:( )。8. 当程序中某个函数改变了数据而需要重新绘制客户区时,OnDraw()函数不会被自动调用,这时需要使用( )间接调用。9Invalidate()要重绘整个窗口客户区,当数据更新很快时,这样会引起屏幕闪烁。为了避免闪烁,可以怎样处理?选择重绘区域的外包矩形,只更新外包矩形区域,减少闪烁,使用InvalidateRect()重绘客户区中的指定区域。10每次当窗口客户区需要重新绘制时,应用程序框架怎么处理?发送WM_PAINT消息,调用OnDraw()函数进行重绘11创建新画刷时,如何定义颜色?COLORREF 是一个 32-bit 整型数值,它代表了一种颜色。你可以使用 RGB 函数来初始化 COLORREF。如:COLORREF color=RGB(0,255,0);12当创建了自己定义的画笔、画刷等GDI对象后,怎样将其选进设备环境?要注意些什么?CDC:SelectObject(),注意保存原有画刷与画笔,以便恢复,如:CPen NewPen(PS_SOLID, 1, RGB(255,0,0), *pOldPen; pOldPen=pDC-SelectObject(&NewPen); /将创建对象选入设备环境pDC-SelectObject(pOldPen); /恢复原来的GDI对象13在OnDraw()函数以外的函数中,怎样在客户区中显示数据?使用CClientDC类创建客户区的设备环境句柄,如:CClientDC dc(this)或GetDC(),如:CDC *pDC=GetDC( )14Windows应用程序常用消息,产生单击鼠标左键的消息是( A )A WM_LBUTTONDOWN B WM_RBUTTONUPC WM_RBUTTONDBLCLK D WM_LBUTTONUP15. 输出文本之前要获取字体的信息,如字符高度等,以确定输出格式和下一行字符的位置,获取当前使用字体信息函数(C )A、GetFontMetrics B、GetFontMetricC、GetTextMetrics D、GetTextMetric16. 为什么要使用DC?答:为了屏蔽硬件输出设备的多样性,Windows系统为程序员提供了一个可以操作这些硬件却与硬件无关的接口,于是就可以把对不同设备的操作方法统一起来。17在MFC中CDC的派生类有哪几个,试说出它们的作用。答:CclientDC应用在除WM_PAINT消息之外的消息处理函数中,提供窗口客服区的设备描述环境。CmetaFileDC代表Windows图元文件的设备描述环境。在创建与设备无关的并且可以回收的图像时使用这个类型的DC。CpaintDC在WM_PAINT消息的处理函数OnDraw中使用的窗口用户区的设备描述环境。CwindowDC提供在整个窗口内绘图的设备描述环境。第5章 MFC的通用类1. 定义了屏幕上或窗口中的一个点的X和 Y坐标的数据类是(CPoint)2. 定义了一个矩形区域及其左上角和右下角的坐标的数据类是(CRect)3. 解释下列语句出的含义。(1)CString s;(2)CString s(“Hello,Visual C+6.0”);(3)CString s(A,100);(4)CString s(buffer,100);(5)CString s(anotherCString)。答:(1)构造一个长度为0的字符串对象。(2)构造一个名称为s的字符串对象,并把字符串初始化为Hello,Visual C+6.0。(3)构造一个名称为s的字符串对象,s字符串的内容是100个A。(4)构造一个名称为s的字符串对象,s字符串的内容是buffer的头100个字符,再加一个NULL。(5)构造一个名称为s的字符串对象,s字符串的内容和anotherCString字符串的内容相同。4. 执行:Cstring s(Cstring(“Hello,world”).Left(6)+Cstring(“Visual C+”).Right(3);语句后,s字符串中的内容是什么?答:Hello,C+。5. 现有语句Cstring s(“My,name,is,C+”);若想将s字符串中的“,”号全部更换成“”,将如何编写语句?答:s.Replace(,);pDC-TextOut(1,1,s);第8章 资源1. 资源描述文件中ACCELERATORS定义的是( D ) A、菜单 B、弹出式菜单C、组合键 D、加速键资源 2. 定义位图的数据结构是( A)A、BITMAP B、CBITMAPC、JPG D、HBITMAP3. 在Windows消息机制中,菜单消息类型是:( B )A.WM_PAINT B.WM_COMMAND C.WM_CREATE D.WM_CLOSE4. 在菜单资源编辑界面中,要为菜单添加子菜单,需要设置的属性是( C )。A.Separator B.Grayed C.Popup D.Break5.做菜单状态修改时,消息类型应该是( A )。A.命令(COMMAND)消息 B.UPDATE_COMMAND_UI消息 C.WINDOWS消息 D.KEYDOWN消息6.下列关于菜单消息ON_COMMAND_RANGE,说法正确的是( D )A.一旦两个消息被设置了范围映射,则原有的消息映射函数会失去作用 B.两个消息被设置了范围映射,原有的消息映射函数仍然有作用 C.在设置范围映射时,如果参数表中第1个消息ID值大于最后一个消息的值(不为0),则消息不能被响应 D.在设置范围映射时,如果参数表中第1个消息ID值大于最后一个消息的值(不为0),则只能响应第1个消息7.关于快捷键的设置,下列说法正确的是( C )。A.只要在菜单的资源编辑菜单中添加了“&P”的标识符,就可以在程序运行中使用Ctrl+P的组合按键来调用菜单 B.两个快捷键不能同时对应1个消息函数 C.如果1个快捷键同时对应两个消息ID,则只有前1个起作用,能够正常运行D.如果1个快捷键同时对应两个消息ID,程序将不能正常运行8.在MFC编程中,关于资源的定义,下列说法错误的是( C )A)在资源编辑器中直接添加资源,缺省ID取值由系统指定 B)使用资源时,可以直接指定资源的ID值 C)在程序中,每个资源的ID的值可以取任意数 D)在资源编辑器中,资源的名称不必按照标准的资源命名方式进行9. 在Windows应用程序中,什么样的数据称为资源?常用资源有哪些?答:资源是一种数据。在应用程序启动后,它们仍然驻留在硬盘上的可执
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 交通事故责任财产保全执行合同
- 财产赠与与投资合作合同范本
- 采矿权抵押贷款合同示范文本
- 融资租赁式餐饮店铺转让及运营管理合同
- 儿童身高管理活动方案
- 老人护理课件
- 老人健康养生课件
- 美术说课课件下载
- 美术画图案课件
- 防火灾事故应急预案
- 2025年地区事业单位招聘公共基础知识重点难点突破试题
- 2025变压器类产品型号注册管理
- 推进教师跨学科教学能力提升方案
- 职业院校与企业深度合作2025年校企合作人才培养质量提升策略与实践报告
- 2025党考试题及答案
- 水路运输安全管理培训
- 中国支付体系行业市场运行现状及投资规划建议报告
- 医院后勤礼仪培训课件
- 《咕咚》课件 小学语文一年级下册
- 小学二年级下册竖式计算题400道
- LS-T8014-2023高标准粮仓建设标准
评论
0/150
提交评论