1、GDI是什么的英文缩写?

Graphics Device Interface

2、什么是设备的无关性?

操作系统屏蔽了硬件设备的差异

3、GDI的主要任务是什么?起到什么样的作用?

主要任务:负责系统与用户或绘图程序之间的信息交换
作用:控制在输出设备上显示图形或文字。

4、什么是设备描述表?它的作业是什么?

设备描述表是定义了一系列图形对象及其属性的结构,包括图形模式及其输出。
作用:通过创建和维护设备描述表来完成应用设备响应应用程序的相关操作。

5、图形刷新包括什么?

刷新的请求、系统对刷新请求的响应以及具体的刷新方法

6、刷新请求有哪些?

窗口移动后的刷新、被覆盖区域的刷新、以及对象穿越后的刷新

7、应用程序情况下会发生刷新请求?同时发出什么消息?

1、用户区移动或显示
2、用户窗口大小改变
3、程序通过滚动条滚动窗口
4、下拉式菜单关闭并需要恢复被覆盖的部分
5、因为清除对话框或消息框等对象需要恢复被覆盖的部分
6、光标穿过用户区
7、图标拖过用户区上述情况均发出WM_PAINT消息

8、什么是无效区域?

窗口被另一个窗口覆盖的区域

9、有效的刷新方法有哪些?大家觉得哪种比较好?在代码中若主动要求刷新窗口,应该怎么办?

有效的刷新方法有:
1、在内存中保持一个显示输出的副本,当需要重绘窗口时,将副本复制到相应的窗口中。
2、记录曾经发生的事件,在窗口需要刷新时候重新调用窗口执行这个事件。
3、重新绘制图形。

第一中对于复杂图形来说较好,第三种对于简单图形来说较好。第二种对于刷新次数少的情况来说较好。

通过InvalidateRect和 InvalidateRgn函数来完成的。InvalidateRect和InvalidateRgn把指定的区域加到窗口的Update Region中,当应用的消息队列没有其他消息时,如果窗口的Update Region不为空时,系统就会自动产生WM_PAINT消息。

10、获取设备环境常用的两种方法是什么?

调用函数BeginPaint或GetDC(GetDCEx)。

11、调用BeginPaint函数和GetDc有什么联系与区别?在实际编程中怎样选择使用?

BeginPaint只用于图形获取设备环境,GetDc使用较为广泛
使用BeginPaint函数获取设备环境后操作区域为无效区域,使用GetDC函数获取设备环境后,操作区域为特定窗口的客户区或整个窗口。
BeginPaint函数获取的设备环境由EndPaint函数释放,GetDc函数获取的设备环境由ReleaseDC函数释放。

1.单独使用GetDC时,窗口画面会一直闪烁,CPU占用会一直提高,大概到10%,后面程序直接卡死,出现程序画面卡顿不能操作的情况
2.一起使用GetDC和BeginPaint时,在窗口拖出屏幕外再拉进显示器时,画面会有闪烁现象,明显看到画面进行重绘,效果不理想,有时会出现窗体内控件消失的情况
3.单独使用BeginPaint,三种情况中效果最佳,窗体拖动时没有明显的闪烁

12、什么是映像模式?想一想,为什么要用映像模式

映像模式定义了将逻辑单位转化为设备的度量单位以及设备的x方向和y方向

作用:,程序员可在一个统一的逻辑坐标系中操作而不必考虑输出设备的坐标系情况。可以统一一个逻辑坐标系,对于同一张图片只需要一个逻辑坐标系,不需要考虑在不同的设备上的显示问题。

13、了解几种常用的映像模式,默认是哪种映像模式。

常用的映像模式:
MM_ANISOTROPIC 可以改变坐标轴方向和比例,逻辑单位(坐标系中的单位长度)由SetWindowExtEx或者SetViewportExtEx确定
MM_ISOTROPIC 可以改变坐标轴方向但是比例为1:1,逻辑单位(坐标系中的单位长度)由SetWindowExtEx或者SetViewportExtEx确定
MM_HIENGLISH     Y向上 X向右 逻辑单位0.001英寸
MM_HIMETRIC      Y向上 X向右 逻辑单位0.01毫米
MM_LOENGLISH     Y向上 X向右 逻辑单位0.01英寸
MM_LOMETRIC    Y向上 X向右 逻辑单位0.1毫米
MM_TEXT         Y向下 X向右 逻辑单位一个像素
MM_TWIPS        Y向下 X向右 逻辑单位1/1440英寸默认映像模式:MM_TEXT

14、了解映像模式中函数的使用(不需要书面写),可以写部分重点函数的理解。

SetWindowExtEx是用于设置以逻辑单位表示的窗口,
SetViewportExtEx是用于设置以物理单位表示的窗口
SetWindowOrgEx是用于设置以逻辑单位表示的窗口的原点,
SetViewportOrgEx是用于设置以物理单位表示的窗口的原点

15、画笔的操作有哪些?

创建画笔,将画笔选入设备环境和删除画笔

16、了解画笔中使用的函数名字的英文意思,便于大家记忆函数,(不需要书面写出)

画笔的函数的英文名字的意思大部分为汉语直译。

HPEN CreatePen(int nPenStyle, int nWidth, COLORREF crColor);function:指定的样式、宽度和颜色创建画笔nPenStyle:实线、虚线、点线等等nWidth:线宽crColor:颜色

17、了解常用的绘图函数,尤其是饼图函数,椭圆弧线函数。想一想怎么画圆,有没有画圆的函数?

圆是特殊的椭圆形所以画圆可以用Ellipse函数,其中边界矩形的左上角逻辑坐标和边界矩形右下角的逻辑坐标设置为关于原点中心对称。

可视化GDI操作题目相关推荐

  1. 用 GDI 操作 EMF 文件(转)

    用 GDI 操作 EMF 文件[1]: CreateEnhMetaFile.CloseEnhMetaFile 用 GDI 操作 EMF 文件[2]: PlayEnhMetaFile.DeleteEnh ...

  2. 大数据ClickHouse(二十):ClickHouse 可视化工具操作

    文章目录 ClickHouse 可视化工具操作 一.tabix 1.直接浏览器访问 2.ClickHouse内嵌方式

  3. 四川高中计算机考试操作题,2017年excel考试操作题目「附答案」

    2017年excel考试操作题目「附答案」 一.操作题 1 要求:设置允许单元格内部直接编辑和自动设置小数点位置为3 位. 答:点工具,点选项,点编辑,分别在单元格内部直接编辑和自动设置小数点位置为3 ...

  4. ciftiTools | 用于读取、写入、可视化和操作CIFTI文件的R包

    文章来源于微信公众号(茗创科技),欢迎有兴趣的朋友搜索关注. 导读 人类连接体项目引入的CIFTI 灰度文件格式进一步推进了基于灰度的分析,将来自左右半球皮层的灰质数据与来自皮层下和小脑的灰质数据合并 ...

  5. Matplotlib可视化常用操作集合

    Matplotlib常用操作 记录写代码过程中常遇到的关于绘图的问题以及基本功能,能够满足日常需求 使用时其他细节可使用help,或查阅官方文档 Matplotlib可视化常用操作集合 Matplot ...

  6. 高校计算机等级考试指导书,计算机等级考试二级MS office 2015年操作题目指导书.doc...

    计算机二级MS office 2015年操作题目指导书 考点一:分节2 考点二:样式设置2 考点三:目录设置3 考点四:页眉页脚5 考点五:编号5 考点六:脚注6 考点七:页脚7 考点八:题注8 考点 ...

  7. python与excel做数据可视化-python操作Excel、读取CVS与数据可视化

    1. python操作Excel python操作Excel有多种module可以实现(xlrd.xlwt.xlutils.openpyxl.xlsxwriter),本文使用xlsxwriter这个m ...

  8. 使用可视化SQLyog操作数据库与使用idea操作数据库的区别

    操作数据库 操作数据库>操作数据库中的表>操作数据库中表的数据 mysql关键字不分大小写! 1.创建数据库 CREATE DATABASE IF NOT EXISTS westos 2. ...

  9. 基于Citespace软件对WOS文献数据进行可视化的操作

    目录 一.文献数据获取 1.文献检索 2.数据导出 3.数据标准化 二.基于Citespace软件实现数据可视化 1.软件启动 2.文献数据的导入与处理 3.新建一个工程(project) 4.数据可 ...

最新文章

  1. JSON.toJSONString(object, SerializerFeature.WriteMapNullValue);第二个参数作用
  2. RocketMQ单机版本安装(windows环境)
  3. nginx ngx_http_autoindex_module
  4. 机器学习初探(手写数字识别)HOG图片
  5. JS中元素的属性(class、style)操作
  6. ssh之雇员管理系统(7)-spring可以启用注解的方式来配置属性+解决懒加载问题...
  7. MyEclipse暗黑主题设置
  8. 农作物病虫害识别技术的发展综述
  9. N卡显卡驱动更新,解决色彩准确度增强的问题
  10. css筋斗云,CSS3 七龙珠筋斗云动画
  11. 2008 IT图书大盘点
  12. 关于新iPad充电的一些误读
  13. SWD脱机下载器的简易实现(一)
  14. Quartz的一般配置方法
  15. php电子杂志,Phpwind推电子杂志《站长天下》 网罗站长故事
  16. 运行 Shell 脚本有两种方法:
  17. 用3句话像老太太讲清楚什么是数据库
  18. hackme2靶场刷题记录
  19. 如何才能做一个淡定从容的人呢?
  20. 文本超出显示省略号的方法

热门文章

  1. RecSys 2017总结
  2. Mapreduce基本工作流程
  3. MS BizSpark计划-免费提供软件和服务
  4. 第二章 Vue快速入门-- 28 自定义按键修饰符
  5. Navicat for mysql导入.sql数据库大小受限制
  6. dell raid配置
  7. Django之缓存和信号
  8. ALGO-117_蓝桥杯_算法训练_友好数
  9. 在js中的replace方法详解
  10. (转)在Total Commander下使用SVN