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试题复习题及答案

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应用程序设计复习资料第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(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期末考试试题及答案## 一、选择题(每题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程序设计》试卷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(改了下)

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

课本例题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编写一个单文档程序,程序启动后在用户区显示一个方形,当用鼠标左键单击用户区后该方形会变为圆形,如果再次单击则又变方形。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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包括键盘和鼠标的输入。