MFC Windows应用程序设计复习题2
阶段三MFC题库
一、单选题 (2)二、多选题 (2)三、填空题 (2)四、判断题 (3)五、简答题 (3)1..动态连接库的两种方式? (3)2.列举几种进程的同步机制,并比较其优缺点。
(3)3.进程之间通信的途径 (3)4. ASSERT()是干什么用的 (3)5.winsock建立连接的主要实现步骤? (4)6.MFC中CString是类型安全类么? (4)7.进程和线程的差别。
(4)8.请简述PeekMessage和GetMessage的区别。
(4)9.请列出你所知道的在Windows SDK平台上,实现计时功能的方法。
(5)10.程序什么时候应该使用线程,什么时候单线程效率高。
(5)11.使用线程是如何防止出现大的波峰。
(5)12.TCP/IP建立连接的过程?(3-way shake) (5)13.IP组播有那些好处? (5)14. CArray,CList,CMap分别是什么,他们的优缺点 (6)15.用什么函数开启新进程、线程。
(6)16.SendMessage和PostMessage有什么区别 (6)17.CMemoryState主要功能是什么 (6)18.windows消息系统由哪几部分构成? (7)19.什么是消息映射? (7)20.什么是UDP和TCP的区别是什么? (7)21.构成Win32 API 函数的三个动态链接库是什么? (7)22.创建一个窗口的步骤是? (7)23.模态对话框和非模态对话框有什么区别? (7)24.从EDIT框中取出数据给关联的变量,已经把关联的变量的数据显示在EDIT框上的函数是什么? (8)25.简单介绍GDI? (8)26.windows消息分为几类?并对各类做简单描述。
(8)27.如何自定义消息? (8)28.简述V isual C++ 、Win32 API和MFC之间的关系? (8)29. MFC中,大部分类是从哪个类继承而来? (8)六、编程分析题 (9)七、编程题 (9)1.写一个socket通讯程序 (9)2.定义一个CMyRect类{w宽度,h高度} 分别用CList。
MFC应用程序设计复习资料
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;结构描述了一个点的位置。
mfc期末考试试题及答案
mfc期末考试试题及答案# MFC期末考试试题及答案## 一、选择题(每题2分,共20分)1. MFC框架中,哪个类是所有窗口类的基类?A. CObjectB. CViewC. CFrameWndD. CWnd2. 在MFC中,哪个宏用于创建一个对话框资源?A. DECLARE_MESSAGE_MAPB. BEGIN_MESSAGE_MAPC. DDX_CONTROLD. DDX_TEXT3. MFC中,用于处理消息映射的宏是?A. DECLARE_MESSAGE_MAPB. BEGIN_MESSAGE_MAPC. ON_COMMANDD. ON_MESSAGE4. 下列哪个不是MFC中的控件类?A. CButtonB. CComboBoxC. CLabelD. CListBox5. 在MFC中,哪个函数用于绘制窗口的非客户区?A. OnDraw()B. OnEraseBkgnd()C. OnPaint()D. OnNcPaint()6. MFC中,哪个类提供了对数据库的访问?A. CDatabaseB. CRecordsetC. CRecordViewD. CDaoDatabase7. 以下哪个不是MFC中的文档模板?A. CMultiDocTemplateB. CSingleDocTemplateC. CDialogTemplateD. CDocTemplate8. MFC中,哪个类负责管理窗口的生命周期?A. CWinAppB. CDocumentC. CViewD. CFrameWnd9. 在MFC中,哪个宏用于定义消息映射?A. DECLARE_MESSAGE_MAPB. BEGIN_MESSAGE_MAPC. END_MESSAGE_MAPD. IMPLEMENT_MESSAGE_MAP10. MFC中,哪个函数用于响应鼠标点击事件?A. OnLButtonDown()B. OnLButtonUp()C. OnRButtonDown()D. OnMButtonDown()## 二、简答题(每题10分,共30分)1. 简述MFC中CWinApp类的用途和主要功能。
Windows程序设计课程复习题
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类成员函数中,用于任何消息的可覆盖函数是()。
Windows程序设计复习资料(完整答案)
一、单项选择题: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程序设计”期末考试(2010-2011(2)
“VC程序设计”期末考试复习提纲说明:该复习提纲不是考试的内容,需要大家全面复习,理解概念,并能编写程序。
考试重点章节第3-7, 9章一、题型1,填空题:共 5个空,每空2分,共10分例如:若用户在应用程序的窗口按下鼠标左键(还未抬起),则消息处理过程被调用,第二个参数的内容_____________,第四个参数的内容是_______________。
2,选择题:20题,每小题2分,共40分1、MFC中的CButton类支持下属哪种方法。
()A、Create方法B、CopyString方法C、ReadString方法D、Set方法3,判断题:10题,每小题2分,共20分例如:CObject是MFC基础类库中所以类的根类()4,简答题:4题,每小题5分,共20分例如:简述菜单资源的主要包含的功能,以及基本的一个菜单是由哪几部分?组成。
(10分)5,程序题,1题共10分二、复习重点第三章复习重点(结合课后3-1至3-4习题复习):1)窗口,句柄, API,事件驱动,的概念;2)MSG消息结构体,常用消息的结构体中的附加参数(重点了解的消息如下在什么事件操作下产生这些消息WM_LBUTTONDOW, WM_RBUTTONDOWN,WM_SIZEWM_CREATE,WM_QUIT,WM_CHAR, WM_KETDOWN,WM_KEYUP,WM_COMMAND附加参数的wParam和lParam的含义)3)Windows消息传递的过程4)Windows程序的结构(WinMain函数和窗口过程函数,窗口整个的创建过程)4)3.1示例(整个程序)重点掌握程序中WNDCLASS,GetStockObject, RegisterClass,LoadIcon,LoadCursour, CreateWindow,ShowWindow,UpdateWindow,GetMessage,TranslateMessage,PostQuitMessage等相关函数的用法第四章复习重点(结合课后习题4-1至4-4复习):1) 设备描述表,图形设备接口(GDI),映射模式,图形对象的概念;2)图形刷新,重点掌握Windows系统对图形刷新响应的情况3)获取设备环境(HDC)的方法,重点掌握相关函数BeginPaint (),EndPaint(),GetDC(),ReleaseDC(),有何区别4)Windows应用程序坐标系统的分类,重点掌握设备坐标系统5)结合例题4-3,常用的绘制图形函数,绘图的编程a)重点掌握基本绘图函数Ellipse,Rectangle,LineTo,MoveToEx等;b)映射模式相关函数SetMapMode()(MM_ANISOTROPIC,MM_ISOTROPIC,MM_TEXT三种模式)c)画刷相关函数CreateSolidBrush(), CreateHatchBruash (),画笔相关函数CreatePen()第五章复习重点(结合课后习题5-1至5-3复习):1)字体分类:逻辑字体和物理字体2)与字体相关函数,如文本输出TextOut(),设置字体和背景颜色相关函数,SetTextColor(),SetBkColor(),GetTextMetrics(),GetTextExtentPoint32第六章复习重点:1)虚拟码,键盘消息的概念2)键盘和鼠标的相关消息,例如按键消息(非系统按键消息和系统按键消息),字符消息(系统字符消息和非系统字符消息),结构体中附加参数的含义3)鼠标消息的wParam参数和lParam参数,掌握响应鼠标键盘的编程 LOWORD和HIWORD函数第七章复习重点(结合课后习题7-2,7-4,7-5复习):1)掌握资源,对话框资源,模态对话框,非模态对话框资源的概念2)操作菜单项的相关函数EnableMenuItem,LoadMenu,CheckMenuItem等3)模态对话框的创建和非模态对话框的编程区别。
windows%20程序设计复习题
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)来实现的。
MFCWindows应用程序设计复习题
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)是主要的包含文件。
MFC的复习资料有试题包括答案
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。
MFC复习资料
第一章: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高级应用编程技术复习题_简答题_名词解释
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绘图函数所使⽤的参数。
Windows程序设计复习资料(含答案)
一、单项选择题: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是设备描述表类的基类,除了一般的窗口显示外,还用于基于桌面的全屏幕绘制和非屏幕显示的打印机输出。
MFC纯复习题200504
实用软件技术复习题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)。
MFC课后简答题(1~11章)
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期末复习简答题及答案
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( )来初始化应用程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第9章MFC的文件处理机制1) 文档负责将数据存储到磁盘中,存取过程称为(D) 。
A. 文件访问B. 格式化C. 文件读写D. 串行化2) 一个CArchive 类对象必须与一个( C ) 对象相关联。
A. CObjectB. CFileDialogC. CFile类D. CDocument3) 不能将Newfile 文件的文件指针定位在文件头的方法是( B ) 。
A. Newfile.Open("MyFile.txt", CFile::modeCreate)B. NewFile::Seek( 0L, CFile::end)C. Newfile.SeekToBegin()D. Newfile.Seek(0L, CFile::begin)4)( A )函数用于获取指定文件的文件名。
A. GetFileName()B. GetStatus()C. GetFilePath()D. GetFileTitle()5) 当应用程序读取或写入文件时,文档对象的( )函数被调用,并将( )对象作为参数传递。
6) ( CArchive )类是一个对象数组类,它可以存放任何从CObject 派生出的对象,还可以根据元素的数量动态地调整自己的大小。
7) 在Visual C++中,数据文件的操作通常按照( 打开) 、( 操作) 、( 关闭) 的步骤进行。
8) 写出以读写方式打开文件student.txt 的语句序列(File.Open(“student.txt”,CFile:modeReadWrite); ) 。
10)什么是序列化?答:序列化是面向对象程序设计中应对象这种数据的存储和恢复的要求而产生的一种文件读写机制。
第11章对话框1. 在对话框的编辑器中,最左边的按键的作用是(B )。
A. 激活对话框编辑功能B. 测试对话框C. 控件左对齐D. 控件垂直居中2. 在MFC类中,访问对话框的编辑框中的文本的函数是(C )。
A. GetTextB. GetItemC. GetDlgItemTextD. GetDlgText3. MFC编程中,模式对话框的创建函数是(B )。
A. CreateB. DoModalC. CreateDialogD. Initilize4. 在Windows操作系统中,最常见的系统错误提示对话框属于(A )。
A. 模式对话框B. 无模式对话框C. 通用对话框D. 固定对话框5 CDialog类的成员函数UpdateData()的功能是(A )。
A. 在调用UpdateData()函数时,令参数为FALSE,可以根据程序更新文本,即按成员变量的值来更新对话框的显示值;B. 在调用UpdateData()函数时,令参数为TRUE,成员变量的值就会被屏幕上显示的值更新;C. 用对话框中的数据更新数据库中的数据;D. 用数据库中的数据更新对话框中的数据;6. 下列关于对话框中数据交换的说法正确的是(C )。
A. 只能交换基本数据类型,不能交换类类型的对象数据B. 可以交换任何C++中合法的数据类型C. 可以交换基本数据类型和一些特定的类类型的数据D. 可以对所有的数据的大小范围进行限制7. 在MFC编程中,从对话框中取得数据的系统函数是(A )。
A. DoDataExchangeB. InitDialogC. CreateD. DoModal8. 下列哪种功能没有被封装为通用对话框?(C )A. 颜色选择B. 字体选择C. 时间选择D. 文件打开保存9. 关于颜色对话框,以下说法错误的是( B )。
A. 颜色对话框是模式对话框B. 颜色对话框的DoModal函数能够返回1个选择的颜色值C. 颜色对话框设定颜色后,程序需要调用窗口重绘消息来更新颜色D. 颜色对话框可以自定义颜色10. 在创建了颜色对话框后,调用设定的颜色需要使用函数(D )。
A. GetColorB. OnColorOKC. SetCurrentColorD. SetColor11. 如果要文件对话框只能显示文件夹中的bmp文件,则建立对话框时应该设置的参数是( B )。
A. lpszFileNameB. lpszFilterC. lpszDefExtD. dwFlags12. 关于文件对话框,以下说法正确的是(C )。
A. 文件对话框只能打开单个文件B. 文件对话框可以设置默认的打开文件C. 文件对话框可以限制访问的文件类型D. 文件对话框是无模式对话框13. 在窗口中添加一个仅仅用于显示文字提示的控件,这个控件的类为:(A )A. CStaticB. CButtonC. CEditD. CComboBox14. 在MFC编程中,所有基于窗口的控件类的基类是(A )。
A. CWndB. CViewC. CWindowsD. CFrame15. 在MFC编程中,可编辑文本框的控件类是(A )。
A. CEditB. CButtonC. CStaticD. CComboBox16.已知以下语句:GetDlgItem(IDC_CONVERT)->EnableWindow(FALSE);则下列说法正确的是(A )。
A. 该语句禁用了对话框中ID号为IDC_CONVERT的控件B. 该语句将显示ID号为IDC_CONVERT的对话框C. 该语句使ID号为IDC_CONVERT的控件变为可见D. 该语句使ID号为IDC_CONVERT的的控件友灰色变为可用17. 如果1个单选按钮的Group属性被设置为“TRUE”,则说明(A )。
A. 该单选按钮是1组单选按钮的第1个B. 该单选按钮独自作为1个按钮组C. 该单选按钮的消息响应属于1个组框D. 该单选按钮一定是默认的单选按钮18. 要设置某个单选按钮的状态,使用的函数是( B )。
A. SetButtonB. SetCheckC. SetRadioD. SetGroup19. 关于列表框(List Box)控件,以下说法错误的是(D )。
A. 列表框控件可以列出一系列供用户从中选择的项B. 列表框控件中的选项可以使用字符串C. 列表框控件中的选项可以使用滚动条D. 列表框中只能一次选择1个选项20. 要在列表框中添加字符串,可以使用的系统函数是(A )。
A. AddStringB. AddTextC. SelectStringD. SetSel21.MFC提供了一些公用对话框类,其中:用于选择颜色的公用对话框类为:(CColor );选择文件名的对话框类为:(CFile ),设置字体的对话框类为:(CDialog )。
22. 对话框分为(模态)对话框和(非模态)对话框两种类型。
23. 选择按钮包括(单选)按钮和(复选)按钮;24. 组合控件集成了()控件和()控件的功能;25. CDialog类是从(CWnd)类中派生出来的27. 试简述Windows编程中,对话框的数据交换机制。
答:CWnd成员函数UpdateData()调用DoDataExchange()来实现对话框的数据交换,其中DoDataExchange()是MFC自动生成的,DoDataExchange()函数通过调用DDX_Custom()来将对话框控件与对话框类中的成员变量相对应。
在具体实现时,调用Update(true)实现对话框的数据输入功能,将数据从控件传送到对应的数据成员;调用Update(false)实现对话框的输出功能,将数据从数据成员变量传送给对应的控件。
28. 什么是对话框模板资源描述文件?答:用来描述对话框外观及对话框上控件布局的文本文件叫做对话框模板资源文件。
29. 用户定义的对话框类派生自哪个类?答:Cdialog。
30. 通常在什么地方进行对话框的初始化?答:通常在类CDialog的OnInitDig成员函数中进行对话框的初始化。
这个函数在对话框启动后,且还没有显示的时候被调用。
31. Windows有哪两类对话框?它们的区别是什么?答:模式对话框和非模式对话框。
它们的区别为模式对话框直到退出对话框才返回应用程序,非模式对话框可以与应用程序同时工作。
32. 对话框创建后,还没显示前就会触发(B )消息。
A)WM_PAINT B)WM_INITDIALOGC)WM_CREATE D)WM_SIZE33. MFC中,与属性对话框相关的两个类是(CPropertyPage)和(CPropertySheet)。
34. 判断一组单选按钮中哪一个被选中了,要使用(GetCheckedRadioButton)函数。
35.(GetCheck)函数可以得到单选或复选框的选中状态。
第12章进程与线程的管理1. 每一个进程至少有(A )个线程。
A. 1B. 2 D. 3 D. 42. 当使用函数AfxBeginThread创建一个工作者线程时,参数dwCreateFlags 指定了线程的初始状态,通常为____0_____,那么线程在创建后立即执行,如果为CREATE_SUSPENDED,则线程在启动后就被挂起。
3. 在创建CWinThread对象的AfxBeginThread函数声明中,参数intnPriority 是线程的( B )。
A 函数名B 优先级C 初始状态D 堆栈尺寸4. 在创建CWinThread对象的AfxBeginThread函数声明中,参数nStackSize 是线程的( D )。
A 函数名B 优先级C 初始状态D 堆栈尺寸5. 在创建CWinThread对象的AfxBeginThread函数声明中,参数dwCreateFlags是线程的(C )。
A 函数名B 优先级C 初始状态D 堆栈尺寸6. 在CWinThread类的成员函数中,查询指向线程主窗口指针的函数是(A )。
A GetMainWndB GetThreadPriorityC ResumeThreadD SuspendThread7. 在CWinThread类的成员函数中,获取当前线程优先级的函数是( B )。
A GetMainWndB GetThreadPriorityC ResumeThreadD SuspendThread8. 在CWinThread类的成员函数中,增加一个线程的挂起记数的函数是( D )。
A GetMainWndB GetThreadPriorityC ResumeThreadD SuspendThread9. 在CWinThread类的成员函数中,减少一个线程的挂起记数的函数是( C )。
A GetMainWndB GetThreadPriorityC ResumeThreadD SuspendThread10. 线程的哪一种优先级最高?(A )A.THREAD_PRIORITY_TIME_CRITICALB. THREAD_PRIORITY_ABOVE_NORMALC. THREAD_PRIORITY_HIGHESTD. THREAD_PRIORITY_IDLE11. 对工作线程和用户界面线程的功能叙述正确的是( C ).A.工作者线程有收发消息的功能,用户界面线程也有收发消息的功能.B.用户界面线程没有收发消息的功能,工作者线程有收发消息的功能.C.用户界面线程有收发消息的功能,工作者线程没有收发消息的功能.D.用户界面线程和工作者线程都没有收发消息的功能.12. 线程启动时,参数dwcreateFlage指示其运行状态,若为( D ),线程立即执行. A, 1 B, T C, F D, 013. 工作线程的函数原型正确的是(C )A. static int MyWorkThreadFunction(LPVOID pParam)B. INT MyWorkThreadFunction(LPVOID pParam)C.UINT MyWorkThreadFunction(LPVOID pParam)D. static int MyWorkThreadFunction(VOID pParam)14. 以下哪个不是关于线程类的函数( C )。