教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

Visual C++程序设计与应用教程课后答案(2)

来源:网络收集 时间:2026-09-14
导读: (3) CPen和CFont均是GDI对象。 (4) 深绿色RGB值为(0,128,0) (5) 删除CPen对象可调用CPen对象的DeleteObject( )函数。 (6) 创建阴影画刷函数是CreateHatchBrush( )。 (7) 默认的对齐方式是TA_LEFT| TA_BOTTOM。 (8

(3) CPen和CFont均是GDI对象。 (4) 深绿色RGB值为(0,128,0) (5) 删除CPen对象可调用CPen对象的DeleteObject( )函数。 (6) 创建阴影画刷函数是CreateHatchBrush( )。 (7) 默认的对齐方式是TA_LEFT| TA_BOTTOM。 (8) DDB又称GDI位图,它依赖于具体设备,只能存在于内存中。 4.简答题

( t ) ( t ) ( f ) ( t ) ( f ) ( t )

(1) GDI创建哪几种类型的图形输出?

应用程序可以使用GDI创建3种类型的图形输出:矢量图形、光栅图形和文本。 (2) 什么是设备环境?它的主要功能有哪些?

设备环境DC也称设备描述表或设备上下文。设备环境DC是由GDI创建、用来代表设备连接的数据结构。DC的主要功能有以下几种:

? 允许应用程序使用一个输出设备。

? 提供Windows应用程序、设备驱动和输出设备之间的连接。

? 保存当前信息,例如当前的画笔、画刷、字体和位图等图形对象及其属性,以及颜

色和背景等影响图形输出的绘图模式。

? 保存窗口剪切区域(Clipping Region),限制程序输出到输出设备中窗口覆盖的区域。 (3) 什么是GDI,它有什么功能?MFC将GDI函数封装在哪个类中?

GDI是Windows提供了一个图形设备接口的抽象接口。GDI负责管理用户绘图操作时功能的转换,其主要功能是实现设备无关性。MFC将GDI函数封装在CDC类中。

(4) 请叙述设备无关性的含义,实现设备无关性需要哪几个环节? 所谓设备无关性,是指操作系统屏蔽了硬件设备的差异,使用户编程时一般无须考虑设备的类型,如不同种类的显示器或打印机。当然,实现设备无关性的另一个重要环节是设备驱动程序。不同设备根据其自身不同的特点(如分辨率和色彩数目)提供相应的驱动程序。下图描述了Windows应用程序的绘图过程。

图设设物 应形备备理 用设驱备动环设 程接程备 序 境 口 序

(5) MFC提供了哪几种设备环境类?它们各自有什么用途? MFC提供的设备环境类包括CDC、CPaintDC、CClientDC、CWindowDC和 CMetaFileDC等,其中CDC类是MFC设备环境类的基类,其他MFC设备环境类都是CDC类的派生类,各个设备环境类的功能如下表所示。

设备环境类 CDC CPaintDC CClientDC

功能描述

所有设备环境类的基类,对GDI的所有绘图函数进行了封装;可用来直接访问整个显示器或非显示设备(如打印机等)的上下文

CPaintDC用于响应窗口重绘消息(WM_PAINT)的绘图输出,不仅可对客户区进行操作,还可以对非客户区进行操作

代表窗口客户区的设备环境,一般在响应非窗口消息并对客户区绘图时要用到 该类

CWindowDC CMetaFileDC

代表整个窗口的设备环境,包括客户区和非客户区;除非要自己绘制窗口边框和按钮,否则一般不用它

代表Windows图元文件的设备环境;一个Windows图元文件包括一系列的图形设备接口命令,可以通过重放这些命令来创建图形;对CMetaFileDC对象进行的各种绘制操作可以被记录到一个图元文件中

(6) 简述传统的SDK获取设备环境的方法。

传统的SDK获取设备环境的方法有两种。在WM_PAINT消息处理函数中通过调用API函数BeginPaint( )获取设备环境,在消息处理函数返回前调用API函数EndPaint( )释放设备环境。如果绘图操作不是在WM_PAINT消息处理函数中,需要通过调用API函数GetDC( )获取设备环境,调用API函数ReleaseDC( )释放设备环境。

(7) 简述创建和使用自定义画笔的步骤。 如果要在设备环境中使用自己的画笔绘图,首先需要创建一个指定风格的画笔,然后选择所创建的画笔,最后还原画笔。

(8) 简述采用MFC方法编程时,显示一个DDB位图的步骤。

采用MFC方法编程时,显示一个DDB位图需要执行以下几个步骤。

? 声明一个CBitmap类的对象,使用LoadBitmap( )函数将位图装入内存。

? 声明一个CDC类的对象,使用CreateCompatibleDC( )函数创建一个与显示设备环境

兼容的内存设备环境。

? 使用CDC::SelectObject( )函数将位图对象选入设备环境中,并保存原来设备环境的指

针。

? 利用CDC的相关输出函数输出位图。

? 使用CDC::SelectObject( )函数恢复原来设备环境。

4.6 习 题

1. 填空题

(1) 常见的菜单类型有主菜单、弹出菜单和快捷菜单3种。

(2) 在Visual C++中,每一个快捷键除了ID属性外,还有两个属性: 键 和 类型 。

(3) 基于对话框的应用程序在运行时 没有 菜单栏。 (4) 在MFC中,工具栏的功能由类 CToolBar 实现。

(5) 调用CToolBar类的成员函数CToolBar::Create( )或CreateEx( ) 创建并初始化工具栏窗口对象。

(6) 设置工具栏停靠特性,需要调用 EnableDocking( ) 函数。

(7) 状态栏实际上是一个窗口,一般分为几个 窗格 ,用来显示不同的信息。 (8) 在MFC中,状态栏的功能由 CStatusBar 类实现。

(9) 状态栏显示的内容由数组 indicators 决定,需要在状态栏中显示各窗格的 标识符、位置以及个数。

(10) CStatusBar类的成员函数 SetPaneInfo() 用来设置给定索引值的窗格ID、风格和宽度,成员函数 SetPaneText() 用来更新窗格的文本 2. 选择题

(1) 在编辑某菜单项时,若要指明该菜单项是一个弹出式子菜单,必须选择属性对话框

中的( )。

A.Separator B.Pop-up C.Inactive D.Grayed

(2) 要使鼠标箭头在按钮上暂停时能显示工具栏按钮提示,必须设置工具栏的风格为( )。

A.CBRS_TOOLTIPS B.CBRS_FLYBY C.CBRS_NOALIGN D.WS_VISIBLE

(3) MFC应用程序框架为状态栏定义的静态数组indicators放在文件( )中。 A.MainFrm.cpp B.MainFrm.h C.stdAfx.cpp D.stdAfx.h (4) 下列有关菜单的叙述中不确的是( )。

A.“&”字符的作用是使其后的字符加上下划线 B.“\\t” 转移字符表示使快捷键按右对齐显示 C.自定义菜单项ID不能与系统菜单项ID相同

D.选中菜单项属性对话框中的Separator,指明菜单项是一个水平线分隔条 3. 判断题

(1) 给菜单项定义快捷键,只需在菜单项属性设置对话框的Caption文本框中说明 即可。 ( f )

(2) 弹出快捷菜单一般出现在鼠标箭头的位置。 ( t ) (3) UPDATE_COMMAND是更新命令用户接口消息。 ( t ) (4) 工具栏停靠特性只能设置一次。 ( t ) (5) 状态栏的功能由CStatusBar类实现。 ( t ) (6) CMenu类、CToolBar类和CStatusBar类的根基类是相同的。 ( t ) 4. 简答题

(1) 简述菜单设计的主要步骤。 菜单设计一般需要经过下面两步:

? 使用菜单编辑器编辑菜单资源;

? 使用ClassWizard进行消息映射,编辑成员函数,完成菜单所要实现的功能。

(2) 为应用程序创建快捷菜单主要有哪些方法? …… 此处隐藏:4263字,全部文档内容请下载后查看。喜欢就下载吧 ……

Visual C++程序设计与应用教程课后答案(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/445757.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)