MFC复习题

合集下载

阶段三MFC题库

阶段三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。

VC-MFC试题复习题及答案

VC-MFC试题复习题及答案
A、( ) B、( )C、( )
D、( ) E、( )
4、常用的类的成员函数中:⑽A获得一个按钮控件的选中、选择和聚焦状态;⑾D得到一个按钮的选中状态;⑿C设置一个按钮的选中状态。
A、( ) B、( ) C、( )
D、( ) E、( )
5、滚动条类的成员函数规定了滚动条的操作。设置滚动条的范围使用⒀C函数,设置滚动块的位置使用⒁E函数,获取滚动块的当前位置使用⒂F函数。
D、在类体之外定义的函数成员不能操作该类的私有数据成员
10、以下不属于成员函数的是(B)
A、静态成员函数B、友元函数
C、构造函数D、析构函数
11、对于消息队列的描述正确的是(D)
A、在中只有一个消息系统,即系统消息队列。消息队列是一个系统定义的数据结构,用于临时存储消息。
B、系统可从消息队列将信息直接发给窗口。另外,每个正在下运行的应用程序都有自己的消息队列。
《程序设计》试卷1
一、单项选择题(每小题1分,共20分)
1、假定为一个类,则执行“” a[3],*p[2];”语句时,自动调用该类构造函数的次数为(B)
A、2 B、3 C、4 D、5
2、对于类中定义的成员,其隐含访问权限为(B)
A、B、C、D、
3、一个类的友元函数或友元类能够通过成员操作符访问该类的(B)
12、列表框类的成员函数用来向列表框增加列表项,成员函数用来清除列表项所有项目。
13、序列化是指将对象写入永久存储介质或者将对象从永久存储介质中读出的过程。
14、程序中的消息有窗口消息、命令消息和控件通知消息三种类型。
15、中的集合类包括数组、列表(链表)、映射(顺序可变)。
16、在进行绘图时,画刷用于指定图形的填充样式,画笔用ቤተ መጻሕፍቲ ባይዱ指定图形的边框样式。

MFC应用程序设计复习资料

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习题答案在回答MFC习题之前,我们先简要介绍一下MFC(Microsoft Foundation Classes)是什么。

MFC是微软基于Windows操作系统的应用程序开发框架。

它提供了一套封装的类和函数,用于开发Windows 应用程序界面。

MFC使用了面向对象的编程思想,让开发者更容易地创建功能丰富、交互性强的Windows应用程序。

以下是一些常见的MFC习题及其答案:1. 什么是MFC?答:MFC是微软提供的一套用于开发Windows应用程序的软件开发工具包,通过封装了一些常用的类和函数,简化了Windows应用程序的开发过程。

2. MFC的特点有哪些?答:MFC具有如下特点:- 提供了一套完整的类和函数库,简化了Windows应用程序的开发。

- 使用了面向对象的编程思想,提供了封装、继承、多态等特性。

- 支持GUI界面的开发,提供了丰富的控件和界面设计工具。

- 高度集成化,与Windows操作系统密切结合。

- 提供了丰富的文档和示例代码。

3. MFC中常用的类有哪些?答:MFC中包含了大量的类,常用的类包括:- CWinApp:应用程序类,代表一个MFC应用程序的实例。

- CWnd:窗口类,代表一个窗口对象。

- CFrameWnd:框架窗口类,提供了窗口的框架结构。

- CView:视图类,负责处理窗口的绘制和交互事件。

- CDocument:文档类,负责管理应用程序的数据。

- CDialog:对话框类,用于创建模态或非模态对话框。

- CButton、CEdit、CListCtrl等:常用的控件类。

4. 如何创建一个MFC应用程序?答:可以通过以下步骤创建一个MFC应用程序:1) 打开Visual Studio开发环境,选择创建一个新的项目。

2) 在项目向导中选择MFC应用程序,填写项目名称和位置。

3) 设置应用程序的属性,如窗口样式、文件关联等。

4) 在资源视图中创建所需的对话框、控件等。

mfc期末考试试题及答案

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类的用途和主要功能。

VC-MFC试题复习题及答案

VC-MFC试题复习题及答案

《VC程序设计》试卷1一、单项选择题(每小题1分,共20分)1、假定MyClass为一个类,则执行“” MyClass a[3],*p[2];”语句时,自动调用该类构造函数的次数为( B )A、2B、3C、4D、52、对于类中定义的成员,其隐含访问权限为( B )A、protectedB、privateC、publicD、static3、一个类的友元函数或友元类能够通过成员操作符访问该类的( B )A、私有成员B、所有成员C、公用成员D、保护成员4、下面说法正确的是(A )A、构造函数可以重载,析构函数不能重载。

B、构造函数不能重载,析构函数可以重载。

C、构造函数可以重载,析构函数也可以重载。

D、构造函数和析构函数都不可以重载。

5、下列语句的运行结果为( D )#include <iostream.h>srtuct COMPLEX{int x;int y;} cNum[2]={1,3,2,7};void main(){cout<< cNum[0].y*cNum[1] x<<endl;}A、3B、2C、21D、66、类AB的缺省构造函数和析构函数是( A )A、AB( )和~AB( )B、AB(int)和~AB( )C、AB( )和~AB(delete )D、AB( )和int~AB( )7、在C++中,若对函数未加说明,则函数的隐含类型是( A )A、intB、doubleC、voidD、char8、已知类A是类B的友元,类B是类C的友元,则( D )A、类A一定是类C的友元B、类C一定是类A的友元C、类C的成员函数可以访问类B的对象的任何成员D、类A的成员函数可以访问类B的对象的任何成员9、下列说法中正确的是( B )A、类定义中只能说明函数成员的函数头,不能定义函数体B、类中的函数成员可以在类体中定义,也可以在类体之外定义C、类中的函数成员在类体之外定义时必须要与类声明在同一文件中D、在类体之外定义的函数成员不能操作该类的私有数据成员10、以下不属于成员函数的是( B )A、静态成员函数B、友元函数C、构造函数D、析构函数11、对于消息队列的描述正确的是( D )A、在Windows中只有一个消息系统,即系统消息队列。

MFC复习题PPT(改了下)

MFC复习题PPT(改了下)

30、有哪三种使多线程更安全的方法? 三种使多线程程序更安全的线程同步对象—临界区(critical section)、互斥对象(mutex)、信号量 (semaphore)。 31、简述DLL的优点 在Windows操作系统中使用DLL有很多优点,最主要的一点是多个应用程序、甚至是不同语言编写的应用程序可以 共享一个DLL文件,真正实现了资源“共享”,大大缩小了应用程序的执行代码,更加有效的利用了内存;使用 DLL的另一个优点是DLL文件作为一个单独的程序模块,封装性、独立性好,在软件需要升级的时候,开发人员只 需要修改相应的DLL文件就可以了,而且,当DLL中的函数改变后,只要不是参数的改变,程序代码并不需要重新编 译。这在编程时十分有用,大大提高了软件开发和维护的效率。 32、利用ODBC创建数据库应用程序的步骤 (1) 建立数据源;(2) 用Appwizard创建程序框架;(3) 显示数据库信息; 33、使用画笔的主要步骤 创建新画笔,保存旧画笔,并使用新画笔取代旧画笔,最后再恢复原来的旧画笔。 34、使用画刷的主要步骤 创建新画刷,保存旧画刷,并使用新画刷取代旧画刷,最后再恢复原来的旧画刷 。 35、简述两种创建自定义字体的方法 第一种是间接创建法,通过调用CFont类的函数CreateFontIndirect来实现;第二种是直接创建法,通过调用 CFont类的函数CreateFont来实现。 36、指出下面代码中哪几行代码是创建新画笔,并保存旧画笔?哪行代码是恢复就画笔? void CDrawAppView::OnDraw(CDC* pDC ) 答案: { 创建新画笔和保存旧画笔的代码行为: CDrawAppDoc* pDoc = GetDocument(); CPen pen(PS_SOLID, 2, RGB(0, 0, ASSERT_VALID(pDoc); 255)); CPen pen(PS_SOLID, 2, RGB(0, 0, 255)); CPen* pOldPen = pDC->SelectObject(&pen); CPen* pOldPen = pDCpDC->MoveTo(20, 30); >SelectObject(&pen); pDC->LineTo(50, 60); 恢复旧画笔的代码行为: pDC->SelectObject(pOldPen); pDC->SelectObject(pOldPen); }

MFC复习1

MFC复习1

课本例题4—2一个绘制多个线条的应用程序。

说明:①6用MFCApp Wizard建立一个名为MFCCexp4_2的单文档应用程序框架②在OnDraw()中添加如下代码即可。

int red=0,green=0,blue=0;//初始化三原色int width=5,row=20;//初始化每一个的宽度(width)及第一行离首行的距离for(int s=0;s<8;s++)//划8条线{int color=RGB(red,green,blue);//指定颜色CPen newPen(PS_SOLID,width,color);//创建新的CPenCPen*oldPen=pDC->SelectObject(&newPen);//将CPen的指针指向newPenpDC->MoveTo(20,row);//将鼠标的位置从原点移动到20,row的位置pDC->LineTo(300,row);//将(20,row)与(300,row)连线。

pDC->SelectObject(oldPen);//red+=32;green+=16;blue+=8;width+=2;row+=30;}MFC4_3画笔联系CMFC4_3Doc* pDoc = GetDocument();ASSERT_V ALID(pDoc);int style[]={PS_SOLID,PS_DASH,PS_DOT,PS_DASHDOT,PS_DASHDOTDOT};int row=20;for(int s=0;s<5;s++){CPen newPen(style[s],1,RGB(0,0,0));CPen*oldPen=pDC->SelectObject(&newPen);pDC->MoveTo(20,row);pDC->LineTo(300,row);pDC->SelectObject(oldPen);row+=30;}例4-4画刷的应用①:MFC AppWizard创建一个名称为MFCexp4_4的单文档应用程序框架②:在视图类的函数OnDraw()中输入如下代码int red=0,green=0,blue=0;int row=20;for(int s=0;s<6;s++){int clr=RGB(red,green,blue);CBrush newBrush(clr);CBrush*oldBrush=pDC->SelectObject(&newBrush);pDC->Rectangle(20,row,200,row+20);//划矩形,左上角(20,row)右下角(200,row+20)pDC->SelectObject(oldBrush);red+=34;green+=16;blue+=4;row+=30;}intstyles[]={HS_BDIAGONAL,HS_CROSS,HS_DIAGCROSS,HS_FDIAGONAL,HS_HORIZONT AL,HS_VERTICAL};//定义一个数组,数组保存六种不同的格式样式row=20;for(s=0;s<6;s++){CBrush newBrush(styles[s],RGB(0,0,0));//遍历六种样式CBrush *oldBrush=pDC->SelectObject(&newBrush);pDC->Rectangle(220,row,400,row+20);//一次画出矩形pDC->SelectObject(&newBrush);row+=30;}例4-6文本颜色的设置①用MFC AppWizard创建一个名称为MFCexp4_6的单文档应用程序框架.②:在视图类的函数OnDraw()中输入如下代码CMFCexp4_6Doc* pDoc = GetDocument();ASSERT_V ALID(pDoc);// TODO: add draw code for native data herepDC->TextOut(30,30,"文本颜色");pDC->SetTextColor(RGB(255,0,0));pDC->TextOut(130,30,"文本颜色");pDC->SetTextColor(RGB(255,255,255));pDC->SetBkColor(RGB(0,0,255));pDC->TextOut(230,30,"文本颜色");例4-7文本字符间距的设置①用MFC AppWizard创建一个名称为MFCexp4_7的单文档应用程序框架.②:在视图类的函数OnDraw()中输入如下代码for(int s=0;s<5;s++){pDC->SetTextCharacterExtra(s*4);pDC->TextOut(20,20+s*20,"文本字符间距");}例4-8文本的水平对齐void CMFC4_8View::OnDraw(CDC* pDC){CMFC4_8Doc* pDoc = GetDocument();ASSERT_V ALID(pDoc);//左对齐pDC->SetTextAlign(TA_LEFT);pDC->TextOut(220,20,"AAAAAAAAAAAAAAAA");pDC->TextOut(220,40,"HHHHHHHH");pDC->TextOut(220,60,"SSSSSSSSSSSSSSSSS");//中间对齐pDC->SetTextAlign(TA_CENTER);pDC->TextOut(220,80,"AAAAAAAAAAAAAAAA");pDC->TextOut(220,100,"HHHHHHHH");pDC->TextOut(220,120,"SSSSSSSSSSSSSSSSS");pDC->SetTextAlign(TA_RIGHT);//右间对齐pDC->TextOut(220,140,"AAAAAAAAAAAAAAAA");pDC->TextOut(220,160,"HHHHHHHH");pDC->TextOut(220,180,"SSSSSSSSSSSSSSSSS");}例4-9设计一个利用CClintDC绘图,在窗口单击鼠标左键之后,在窗口的用户区出现一个菱形图形的用用程序①用MFC AppWizard创建一个名称为MFCexp4_9的单文档应用程序框架.②:在视图类的函数OnDraw()中输入如下代码CClientDC dc(this);CRect rc;GetClientRect(&rc);dc.MoveTo(0,(rc.bottom+rc.top)/2);dc.LineTo((rc.right+rc.left)/2,0);dc.LineTo(rc.right,(rc.bottom+rc.top)/2);dc.LineTo((rc.right+rc.left)/2,rc.bottom);dc.LineTo(0,(rc.bottom+rc.top)/2);CView::OnLButtonDown(nFlags, point);课后题4.6编写一个单文档程序,程序启动后在用户区显示一个方形,当用鼠标左键单击用户区后该方形会变为圆形,如果再次单击则又变方形。

mfc期末考试试题及答案

mfc期末考试试题及答案

mfc期末考试试题及答案MFC期末考试试题一、选择题(每题2分,共20分)1. MFC中的“M”代表什么?A. MicrosoftB. ModelC. MessageD. Module2. 在MFC中,哪个类是所有窗口类的基类?A. CWinAppB. CWndC. CFrameWndD. CDocument3. MFC中的消息映射机制是如何工作的?A. 直接调用函数B. 通过消息队列C. 通过函数指针D. 通过反射4. 下列哪个不是MFC中常用的消息类型?A. WM_PAINTB. WM_COMMANDC. WM_TIMERD. WM_USER5. MFC中,哪个宏用于创建对话框类?A. DECLARE_MESSAGE_MAPB. BEGIN_MESSAGE_MAPC. DDX/DDVD. DLGTEMPLATE6. 在MFC中,如何将控件与变量关联起来?A. 使用控件IDB. 使用变量名C. 使用控件的类名D. 使用消息映射7. MFC中,哪个类提供了对文件操作的支持?A. CFileB. CStdioFileC. CArchiveD. CFileFind8. 在MFC中,如何创建一个单文档界面(SDI)应用程序?A. 使用CWinApp类B. 使用CFrameWnd类C. 使用CSingleDocTemplate类D. 使用CMultiDocTemplate类9. MFC中,哪个类用于管理应用程序的运行时状态?A. CWinThreadB. CWinAppC. CMainFrameD. CView10. 下列哪个不是MFC中的消息处理函数?A. OnCreateB. OnDestroyC. OnInitDialogD. OnClose二、简答题(每题5分,共20分)1. 简述MFC框架中的消息循环机制。

2. 解释MFC中的资源文件(.rc)和资源编辑器的作用。

3. 描述如何使用MFC创建一个基本的对话框应用程序。

MFC的复习资料有试题包括答案

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纯复习题04资料

最新MFC纯复习题04资料

实用软件技术复习题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-Windows应用程序设计复习题2

MFC-Windows应用程序设计复习题2

MFC-Windows应用程序设计复习题2第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); ) 。

12. 关于文件对话框,以下说法正确的是(C )。

A. 文件对话框只能打开单个文件B. 文件对话框可以设置默认的打开文件C. 文件对话框可以限制访问的文件类型D. 文件对话框是无模式对话框13. 在窗口中添加一个仅仅用于显示文字提示的控件,这个控件的类为:(A )A. CStaticB. CButtonC. CEditD. CComboBox14. 在MFC编程中,所有基于窗口的控件类的基类是(A )。

MFC复习资料

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。

MFCWindows应用程序设计复习题.docx

MFCWindows应用程序设计复习题.docx

MFC Windows 应用程序设计【复习】第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 :默认的窗口过程进行处理D :无法发出此消息B : 消息名称(UINT ) 和参数(PARAM )C :消息名称D :消息名称 (UINT) (UINT)7. 应用程序接收到(A )消息时停止接收其他消息A:WM_QUIT B:WM_DESTORYC:W M_PAINT D:WM_COMMAND8. 下列Windows数据格式中,代表设备句柄的是(B )。

A. HWNDB. HDCC. HINSTANCED. HFONT9. 典型的Windows窗口程序的流程为:(A )A. 注册窗口类・>创建窗口・>显示窗口・>更新窗口・>消息循环B. 创建窗口・>注册窗口类・>显示窗口・>更新窗口・>消息循环C. 创建窗口・>注册窗口类・>显示窗口・>更新窗口・>消息循环D. 注册窗口类・>创建窗口・>更新窗口・>显示窗口・>消息循环10. 在WinMain函数的原型中HINSTANCE hlnstance定义的是(A )HINSTANCE hPrevInstance 定义的是(B )LPSTR IpCmdLine 定义的是(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期末考试资料

MFC期末考试资料

MFC期末考试资料第1章绪论●图形用户界面(GUI=Graphical User Interface)的概念、组成与优点GUI的概念:Graphical User Interface=图形用户界面,是计算机的一种人机接口。

组成:由图形显示设备(屏幕)和指示跟踪设备(鼠标、跟踪球、光笔/手写笔、触摸屏)组成,用户可通过指示设备来操作图形设备上的界面元素(窗口、菜单、对话框、图标)以完成各种工作。

优点:与DOS等基于命令行的字符界面的OS相比,GUI形象直观、使用方便、人性化,不需记忆各种命令和参数,各种应用软件之基本功能的操作一致或相似。

有大量API供程序员调用,图形界面的编程相对DOS要简单。

●Windows的特点、GDI的概念与特点Windows的主要特点有:面向对象、消息/事件驱动、多任务、图形设备接口GDI与设备无关。

GDI概念:Graphics Device Interface=与设备无关的图像设备接口。

特点:应用程序可使用同一函数,可在不同的打印机和显示器上输出同一个图形。

●Windows编程的特点1.面向对象的编程思想2.消息/事件驱动的程序结构3.资源共享与数据交换4.与设备无关GDI编程5..NET●Windows编程的语言工具选择⏹小型/应用软件Visual Basic⏹大型/系统软件Visual C++⏹通用/数据库软件Delphi(Pascal)/PowerBuilder⏹网络/安全软件Java⏹Web/XML软件Java/Visual C#●Windows API编程的步骤、入口函数和程序结构SDK(Software Development Kit软件开发工具包)API(Application Program Interface应用程序接口)步骤:运行VS创建新项目编写源代码(也可以直接将已有的源文件加到项目中)编译、连接并运行入口函数:int WINAPI WinMain(HINSTANCE hInstance,//handle to current instanceHINSTANCE hPrevInstance,//handle to previous instanceLPSTR lpCmdLine,//pointer to command lineint nCmdShow//show state of window);窗口类结构:typedef struct_WNDCLASS{UINT style;WNDPROC lpfnWndProc;int cbClsExtra;int cbWndExtra;HANDLE hInstance;HICON hIcon;HCURSOR hCursor;HBRUSH hbrBackground;LPCTSTR lpszMenuName;LPCTSTR lpszClassName;}WNDCLASS;●MFC的概念、特点与优势MFC的概念:Microsoft Foundation Class Library=微软基础类库,是Windows API的C++类封装,用于VC的Windows编程。

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( )来初始化应用程序。

MFC课后简答题(1~11章)

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中,能够根据消息取得消息处理函数的表,叫做消息映射表。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

名词解释1.事件:能触发程序做出相应反应的因素或动作叫做“事件”2、句柄:用来区分普通变量的标识的标识叫做句柄3、消息:为了描述事件的各种信息而定义的一个结叫做消息4、Windows的API函数:由操作系统提供的,用户可以使用的函数叫做API函数5、Windows SDK程序:直接使用API函数开发程序的早期Windows应用程序的开发工具6、资源:用不同方式制作和保存的数据叫做资源7、图象设备接口(GDI):用于改变DC属性的操作,即与绘图相关的操作制作成的函数的集合。

8、控件CDC类:把DC和GDI函数封装到一起形成的类叫做控件CDC类9、消息循环:在创建了窗口的应用程序中,应用程序将不断地从消息队列中获取消息,并将消息指派给指定的窗口处理函数来处理,然后再回来从消息队列获取消息,这个不断重复的工作过程叫做消息循环。

10、无效显示区:无效显示区一般定义为窗口用户区上的一个矩形区域,这个区域应覆盖所有因文档发生变化而需要重绘的部分。

当程序需要重新绘制一个图形时,只要重新绘制该矩形内部的图形就可以了。

11、控件:为了实现应用程序与用户之间的交互,Windows允许在应用程序的界面上放置诸如命令按钮、文本框、滚动条等一些图形部件,因为这些部件可以用来处理用户事件,并使应用做出相应的反应,所以这些图形部件通常叫做控件。

12、类信息表:类中存放了类信息的一个CruntimeClass结构类型数据。

其中的主要内容为类名称和指向对象构建函数的指针,建立该表的目的就是为了能在运行期根据类名称调用构建函数来动态创建对象。

简答题1.位图的主要步骤:1)用位图类来定义一个对象(Bitmap)2)把位图资源载入位图对象3)获取位图信息4)把位图选入内存设备环境5)显示位图2.利用AppWizard生成默认的SDI应用程序My时,向导自动生成的哪四个类?及其相应的功能。

CMainFrame(构建应用程序,显示窗架)CMyApp(整个应用程序)CMyDoc(管理数据)CMyView(显示数据)3.创建窗口的五个步骤:1)定义窗口2)注册窗口3)创建窗口4)显示窗口5)消息循环4.简述从Cdocument类派生自己需要的文档类的一般步骤。

1)以CDocument为基类,派生出一个类2)在此类中添加数据成员和成员函数3)在构造函数中进行初始化数据成员4)在实现部分编写对应的成员函数5.以鼠标消息WM_MOUSEMOVE为例,写出在MFC编程中,为视图CJKXView手工添加消息响应函数的步骤与相关代码。

1)在类CJKXView的头文件中添加声明消息响应函数,代码为:afx_msg void OnMOUSEMOVE(UINT flags,CPonint point);2)在现实文件BEGIN_MESSAGE_MAP与END_MESSAGE_MAP( )之间添加消息映射表ON_WM_MOUSEMOVE( )3)添加消息响应函数void CMyview::Onmousemove(UINT flags,CPoint point);6.在MFC中创建和使用模式对话框的主要步骤有哪些?1)使用对话框编辑器创建对话框资源;2)对于输入型对话框:创建对话框类,添加类的控件变量,添加并编写消息处理函数,然后在应用程序的某个类的需要处使用该对话框——使用步骤包括:创建该对话框类的对象;初始化该对话框的控件变量;用成员函数DoModal打开对话框;在用户按“确定”(IDOK)键关闭对话框后,通过对话框类的控件变量获取用户的输入和选择。

3)对于操作型对话框:在用户对话框类的重写型消息响应函数OnInitDialog中,对对话框中的控件做初始化设置;添加并编写消息处理函数;最后是接受用户的输入。

{或者是1)在资源编辑器中创建对话框的资源2)以CDialog为基类做一个对话框类的一个派生类3)在使用对话框的类中把创建类的dddd.h头文件包含在内}填空题:1.GetMessage( )被用来从消息队列获取消息,2.函数TranslateMessage( )用来把键盘消息转换为字符消息,函数DispatchMessage( )用来向系统派送消息。

3.GetDocument( )函数是指向文档对象指针。

4.工作线程和用户界面线程的区别:是否拥有界面。

5.打开数据库的两种方式:dynaset和snapshot(使用CRecordset对象对数据源进行操作)。

6.UpdateData函数为真时:控件将向对应成员变量写入数据;为假时:控件将从对应成员变量读取数据。

编程题:1、为学员信息设计一个类CWorker,包含:编号、姓名、出生日期、家庭住址、手机号,并使该类可以实现串行化。

请写出可以实现要求的CWorker.h和CWorker.cpp文件的内容。

//CWorker.hclass CWorker:public CObject {public:CString Num;// char Num[10];CString Name;CTime Birth;CString Address;CString Tel;DECLARE_SERIAL(CWorker) // 使对象可串行化virtual void Serialize( CArchive & ar ); //重载串行化函数CWorker(){。

}};//CWorker.cppMPLEMENT_SERIAL(CWorker,CObject,0)void CWorker::Serialize(CArchive & ar){ CObject::Serialize(ar);if ( ar.IsStoring() ){ ar<<Num<<Name<< Birth <<Address<< Tel;}else{ ar>>Num>>Name>> Birth >>Address>>Tel;}}附加题(可供参考)1、Windows API中API的英文全文为 application programming interface ,中文译文是应用程序接口。

2、MFC的英文全文为 Microsoft Foundation Classes ,中文译文是微软基础类库。

3、GDI的英文全文为 Graphics Device Interface ,中文译文是图形设备接口。

4、全局函数 AfxGetApp() 可以得到CWinApp应用类指针。

5、MFC中可自动重绘的绘图代码一般位于项目的视图类的 OnDraw() 函数中。

6、在视图中, GetDocument() 函数可得到对应的文档对象指针。

7、在文档中, GetFirstviewPosition() 和 GetNextview() 配合可用来遍历所有和文档关联的视图。

8、在MFC中,用 CRect 类来描述一个矩形区域的大小。

9、用CArray类创建数组,在使用一个数组之前,使用 SetSize 建立它的大小和为它分配内存。

10、Afx是Application Framework的简写,以Afx开头的函数都是全局函数,可以在任一个类实现中调用。

11、MFC按线程是否拥有用户界面,把线程分为两种:工作线程和用户界面线程,它们根本的区别是是否能够拥有消息响应机制。

12、使用CFile类打开文件的成员函数是 Open() 。

13、在任何时刻设备环境中必须有一支画笔,并且只能有一支。

因此在使用自己定义的画笔时,要使用CDC的函数把默认画笔替换为自己定义的画笔,这个函数是SelectObject() 。

14、MFC的缺省的映射模式是MM_TEXT,对应的单位为像素。

15、在视图类中为了访问与视图关联的文档对象中数据,应该先调用 GetDocument()函数得到相关联文档对象指针。

16、用 CArray() 类对象可以创建数组,由于这是一个类模板,因此可以对任意数据类型的数据进行处理。

17、全局函数 GetDocument() 可以得到框架窗口指针。

18、在MFC中,类 CRect 的对象可以描述一个矩形。

19、MFC用 CPoint 类来描述一个点。

20、利用MFC AppWizard可以生成SDI界面、 MDI 界面和基于对话框界面的程序。

21、用MFC编写的Windows应用程序时,线程之间同步的对象有:事件、临界段、互斥体和信号量。

22、在框架窗口中, GetActiveDocument()函数可得到当前活动文档指针, GetActiveView()函数可得到当前活动视指针。

23、MFC中生成自定义模态对话框时先定义对话框类对象,然后调用 DoModel()成员函数创建模态对话框。

24、MFC的缺省的映射模式是 MM_TEXT,对应的单位为像素。

25、语句CArray<CRect,CRect&> m_P; 定义了一个数组对象m_P,数组元素的数据类型为CRect ,而数组对象成员函数的形参数据类型为指针。

26、定义一个具有动态创建对象能力类时,必须在该类中定义一个无参的构造函数。

27.MFC对话框类的基类是 CDialog ,用户自定义对话框类都是从它派生而来。

28.Windows系统是一个消息响应事件驱动的操作系统,消息是应用程序与操作系统交互的手段。

29.随机访问一个文件的内容需要在打开的文件中重新定位一个指针,可以使用CFile类的 Seek()成员函数。

30.可以使用UpdateData成员函数激发数据交换。

其原型为:BOOL UpdateData( BOOL bSaveAndValidate = TRUE ); 当其参数bSaveAndValidate为TRUE时,控件把数据传递到与之相关联的数据成员。

31.可以使用UpdateData成员函数激发数据交换。

其原型为:BOOL UpdateData( BOOL bSaveAndValidate = TRUE ); 当参数bSaveAndValidate为FALSE时,相关联的值传到控件。

选择填空题(请将所选答案的番号写在答题框内。

每空只有一个正确答案。

)1、所有的文档类都派生于 C ,所有的视图类都派生于 A 。

A.CView B.C Window C.CDocument D.CFormView2、在进行绘图时, B 用于指定图形的填充样式, A 用于指定图形的边框样式。

A、画笔B、画刷C、区域D、位图3、B 代表窗口客户区的显示设备上下文, C 代表整个窗口的显示设备上下文。

A.CPaintDC B.CClientDC C.CWindowDC D.CMetaFileDC4、C包括键盘和鼠标的输入。

相关文档
最新文档