《MFC程序设计》试题A.doc

上传人:b****1 文档编号:172959 上传时间:2022-10-05 格式:DOC 页数:7 大小:80KB
下载 相关 举报
《MFC程序设计》试题A.doc_第1页
第1页 / 共7页
《MFC程序设计》试题A.doc_第2页
第2页 / 共7页
《MFC程序设计》试题A.doc_第3页
第3页 / 共7页
《MFC程序设计》试题A.doc_第4页
第4页 / 共7页
《MFC程序设计》试题A.doc_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

《MFC程序设计》试题A.doc

《《MFC程序设计》试题A.doc》由会员分享,可在线阅读,更多相关《《MFC程序设计》试题A.doc(7页珍藏版)》请在冰豆网上搜索。

《MFC程序设计》试题A.doc

《MFC程序设计》期末考试试题(A卷)

年级:

_04_班级:

_应用、通信、信息、嵌入式专业:

软件工程

考试形式:

闭卷任课教师:

李才伟

班级:

__________学号:

________________姓名:

___________成绩:

_______

一.填空题(每小题2分,共30分)

1.SDK的英文全文为_____________________________________________,中文译文是_____________________。

2.Windows编程的特点有_______________________________________________________________________________________________________________________________。

3.Windows编程中的首选语言工具:

系统应用程序的为______________________,.NET框架程序的为_________________________。

4.GDI的英文全文为_____________________________________________,中文译文是_____________________。

5.对话框的种类有________________________________________________________________________________________________。

6.CGDIObject的常用派生类有__________________________________________________________________________。

7.视图类的OnDraw函数在________________________________________________________________________________________________________时会被应用程序框架调用。

8.缺省的映射模式是__________________________,对应的单位为_________________。

9.用MFC生成位图动画的步骤为_________________________________________________________________________________________________________________________。

10.在打开文档并就绪后,应用程序框架先后调用的视图类函数为_____________________和______________________。

11.与GDI相比,GDI+的画刷主要增加了________________________________________。

12.GDI+矩形类Rect的数据成员有______________________________________________。

13.在泛型编程中,迭代器是广义的____________、容器则是广义的__________________。

14.VC中可用的主要字符串类有_______________________________________________。

15.COM的英文全文为_____________________________________________,中文译文是________________________。

二.问答题(每小题5分,共30分)

1.给出MFC的英文全文与中文译文,MFC相对于WindowsAPI有哪些特点与优势?

2.菜单设计的一般步骤有哪些?

3.以鼠标消息WM_LBUTTONUP为例,写出为视图类CDrawView手工添加消息响应函数的步骤与相关代码。

4.给出用鼠标拖放画动态图形的原理思路与具体步骤。

5.文档与视图分别对应于什么?

文档/视图结构有哪几种主要的方式?

文档/视图结构涉及哪些MFC类?

它们是怎样联系在一起的?

6.在使用GDI+编写绘图代码之前,需要做哪些预先的准备工作?

三.编程题(每小题10分,共40分)

1.写出最简单的MFC程序SHello的完整源代码。

2.设有一实心绿色椭圆,其外接矩形的左上角坐标为(10,20)、宽200、高100,椭圆边框为红色单像素实线,写出画该椭圆的代码段。

(MFC或GDI+皆可)

3.写出使用“打开文件”公用对话框的代码段。

要求:

对文件扩展名bmp、gif和jpg进行过滤;如果用户按“确定”钮结束对话框,则将用户选择的文件路径串赋值给CString变量fn。

4.从下列两题中,选做一题:

1)编写移动图像程序:

写出装入当前目录的背景图文件“tulips.bmp”,并在客户区的不同位置点上(如p0、p),缓冲绘制(具有红色背景的足球)位图资源IDB_FOOTBALL_RED的有关MFC代码片段。

2)利用map容器,编写一个读入文本文件,并对其进行单词计数,最后输出它们的计数值的完整程序。

《MFC编程》试题参考答案

一.填空题(每小题2分,共30分)

1.SoftwareDevelopmentKit、软件开发工具包

2.面向对象的编程思想、消息/事件驱动的程序结构、资源共享与数据交换、与设备无关GDI编程

3.VC(VisualC++)、C#(VisualC#)

4.GraphicalDeviceInterface、图形设备接口

5.模式对话框与无模式对话框,公用对话框与用户对话框

6.CPen、CBrush、CBitmap、CFont等

7.每次需要重绘窗口(程序启动/窗口大小改变/全部或部分窗口重现/程序员调用RedrawWindow或UpdateWindow)

8.MM_TEXT、像素

9.准备系列位图文件、加入位图资源、装入位图、设置位图控件与启动/停止按钮、编写启动/停止动画(设置/删除计时器Timer)的代码、绘制动画(响应计时器消息)、程序结束时删除位图

10.OnInitialUpdate、OnDraw

11.线性渐变刷和路径渐变刷

12.X、Y、Width、Height

13.指针、数组

14.string/wstring(C++)、CString(MFC)和String(.NET)

15.ComponentObjectModel、组件对象模型

二.问答题(每小题5分,共30分)

1.

lMFC=MicrosoftFoundationClassLibrary=微软基础类库

l封装了WindowsSDK的结构、功能、应用程序框架等内部技术,屏蔽了重复繁琐的实现细节,简化了程序员的工作

2.

l打开资源编辑器来添加菜单资源、设置菜单的助记键(&)和ID

l为菜单项添加和联接加速键

l为菜单添加事件处理函数

l在事件处理函数中添加具体处理代码

3.

l在视图类的头文件中,添加函数原型:

public:

afx_msgvoidOnLButtonUp(UINTnFlags,CPointpoint);

l在视图类的代码文件头部的消息映射宏内,添加命令消息映射宏:

ON_WM_LBUTTONUP()

l在视图类的代码文件尾部,添加消息响应函数的函数体:

voidCHViewView:

:

OnLButtonUp(UINTnFlags,CPointpoint){

……

CHtmlView:

:

OnLButtonUp(nFlags,point);

}

4.

原理思路:

利用两次异或画图可以还原背景的特点,采用先异或画前图、再在原位置第二次异或化图(擦除)、然后在新位置异或画图、……,这样就可以达到动态画图效果。

具体步骤:

l在视图类中定义表示动态图形的起点和动态终点、用于画异或图的灰色笔和画普通图线笔指针、是否已画了异或图等的类变量

l在视图类的初始化函数中创建用于灰色笔和图线笔、设已画异或图为假;

l在左鼠标键按下的消息响应函数中,记录起点;

l在鼠标移动消息响应函数中,判断是否左鼠标键被按下;如果按下,再判断是否已画了异或图;如果画了,则在原来老位置再一次异或画图(擦除);然后在当前新位置异或画图;记录当前新位置为老位置;

l在左鼠标键松开的消息响应函数中,在原来老位置再一次异或画图(擦除);然后在当前新位置画非异或的最终图。

5.

l文档对应于用户的数据,视图是一种窗口对象,对应于框架窗口的客户区

l文档/视图结构的3种主要方式:

SDI(singledocumentinterface,单文档界面)、MDI(multipledocumentinterface,多文档界面)和MTDI(MultipleTop-levelDocumentInterface,多顶级文档界面)

l文档/视图结构所涉及MFC类有:

文档派生类、视图派生类和[派生]框架窗口类,它们由模板类(的构造函数)联系在一起。

6.

l添加链接库:

在项目属性“配置属性/链接器/输入”项的“附加依赖项”中,添加GdiPlus.lib

l包含GDI+的头文件:

#include

l加上使用GDI+命名空间的using指令:

usingnamespaceGdiplus;

l初始化/关闭:

在应用程序类的InitInstance/ExitInstance函数中,调用GDI+启动/关闭函数GdiplusStartup/GdiplusShutdown,来对GDI+进行初始化和清除工作。

三.编程题(每小题10分,共40分)

1.

//SHello.cpp

#include//MFC头文件

classCSHelloApp:

publicCWinApp{//应用程序类

virtualBOOLInitInstance();//初始化实例虚函数

};

BOOLCSHelloApp:

:

InitInstance(){//初始化应用程序实例的成员函数

CFrameWnd*pFrmWnd=newCFrameWnd();//创建框架窗口对象

pFrmWnd->Create(NULL,"Helloworld!

");//创建框架窗口

m_pMainWnd=pFrmWnd;//将该框架窗口作为应用程序的主窗口

pFrmWnd->ShowWindow(m_nCmdShow);//显示主窗口

returnTRUE;

}

CSHelloApptheApp;//唯一的CSHelloApp对象

2.

1)MFC

CDC*pDC=GetDC();

CPenpen,*pOldPen;

pen.CreatePen(PS_SOLID,0,RGB(255,0,0));

pOldPen=pDC->SelectObject(&pen);

CBrushbrush,*pOldBrush;

brush.CreateSolidBrush(RGB(0,255,0));

pOldBrush=pDC->SelectObject(&brush);

pDC->Ellipse(10,20,210,120);

pDC->SelectObject(pOldPen);

pDC->SelectObject(pOldBrush);

pen.DeleteObject();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 党团建设

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1