设备上下文
来源:互联网 发布:东风天锦配件淘宝 编辑:程序博客网 时间:2024/05/15 14:14
设备上下文,又叫作设备描述表(Device Context),简称DC。
当一个应用程序使用GDI函数时,必须先装入特定的设备驱动程序,然后为绘制窗口准备设备描述表,比如指定线的宽度和颜色、刷子的样式和颜色、字体、剪裁区域等等。不像其他Win32结构,设备描述表不能被直接访问,只能通过系列Win32函数来间接地操作。
如同Windows“窗口类”一样,设备描述表也是一种Windows数据结构,用来描述绘制窗口所需要的信息。它定义了一个坐标映射模式、一组GDI图形对象及其属性。这些GDI对象包括用于画线的笔,绘图、填图的刷子,位图,调色板,剪裁区域,及路径(Path)。
1.设备描述表
设备描述表是一个包含设备信息的结构体,(物理设备如显示器,打印机),MFC中关于图形操作都需要DC来完成.
2获取DC 有两种方式:
(1)在WM_PAINT消息时,使用BeginPaint
eg: HDC hdc;
在其他的场合,都是使用第二种方法来调用DC.
具有特殊类型的DC
用于在窗口客户区绘图(除OnPaint外的任何处理程序)
CClientDC dc(this);
dc.MoveTo(m_ptOrigin);
dc.LineTo(m_ptEnd);
用于在整个窗口.下面是以桌面为例,应该明确桌面也是一个窗口.
CWindowDC dc(GetDesktopWindow());
dc.MoveTo(m_ptOrigin);
dc.LineTo(m_ptEnd);
这个就保存在元文件中,等待事件然后播放元文件.(如窗口重绘)
3设备描述表相关的工具有:bitmap,font,brush,palette,pen
使用原则:首先创建一个特定的对象,然后将其选入设备描述表中,接下来就一一介绍如何使用.
CClientDC dc(this);
CPen pen(类型,线宽,颜色);(定义一个画笔)
CBrush brush(颜色);(定义一个画刷,主要是填充作用)
CBitmap bitmap;(定义一个位图)
bitmap.LoadBitmap(IDB_BITMAP1);
CFont font;(定义一种字体)
font.CreatePointFont(大小,字体名称,NULL);(NULL 表示使用屏幕设备描述表来完成这中转换)
将他们都选入设备描述表中,并且保存以前的.运用SelectObject()函数,可以将其选入设备描述表,并且返回先前被选对象的指针.
CPen *poldpen=dc.SelectObject(&pen);
使用过程
dc.SelectObject(poldpen);(使用结束后,将其恢复到原来的状态)
CBrush *poldbursh=dc.SelectObject(&bursh);
dc.FillRect(CRect(100,100,200,200),&brush);
dc.SelectObject(poldbrush);
红色背景转自http://blog.sina.com.cn/s/blog_50ed869d01009995.html
- 设备上下文
- 设备上下文
- 设备上下文
- 获取设备上下文句柄
- 什么是设备上下文
- 什么是设备上下文
- 设备上下文类
- 什么是设备上下文
- 如何理解设备上下文
- 什么是设备上下文
- 什么是设备上下文?
- 图形设备/图形上下文
- MFC----设备上下文
- 获取设备上下文
- windows程序设计--设备上下文
- windows程序设计 设备上下文
- 什么是设备上下文
- 【wxpython】设备上下文简介
- c#中使用托管和非托管dll
- 应用barcode4j生成二维码
- 黑马程序员_Java基础[9]_static
- 家里路由器安全
- Matlab统计作图
- 设备上下文
- CentOS 安装中文输入法
- 多线程-3
- JAVA遍历某个目录下的文件并读取
- java引用传递
- 【梦幻连连连】源码分析(二)
- centos 下装 svn客户端,ssl失败解决方法
- js中toLowerCase()方法的作用
- jquery分页插件—Smart Paginator