一、VC++中的DC环境及GUI有关的各种对象
在Windows中有各种图形用户界面GUI(Graphics User Interface)对象,当我们在进行绘图时就需要利用这些对象。而各种对象都拥有各种属性,下面首先介绍几种GUI对象和拥有的属性。
(一)、GUI有关的各种对象
在Windows中有各种图形用户界面GUI(Graphics User Interface)对象,当我们在进行绘图时就需要利用这些对象。而各种对象都拥有各种属性,下面首先介绍几种GUI对象和拥有的属性。
- 字体对象CFont
字体对象CFont用于输出文字时选用不同风格和大小的字体。可选择的风格包括:是否为斜体,是否为粗体,字体名称,是否有下划线等。
- 刷子CBrush对象
刷子CBrush对象决定填充区域时所采用的颜色或模板。对于一个固定色的刷子来讲它的属性为颜色,是否采用网格和网格的类型如水平的,垂直的,交叉的等。也可以利用8*8的位图来创建一个自定义模板的刷子,在使用这种刷子填充时系统会利用位图逐步填充区域。
- 画笔CPen
画笔CPen对象在画点和画线时有用。它的属性包括颜色,宽度,线的风格,如虚线,实线,点划线等。
- 位图CBitmap对象
位图CBitmap对象可以包含一幅图像,可以保存在资源中。
- CPalette调色板
CPalette调色板是一种颜色映射接口,它允许应用程序在不影响其他应用程序的前提下,可以充分利用输出设备的颜色描绘能力。
此外系统中还拥有一些库存GUI对象,你可以利用CDC::SelectStockObject(SelectStockObject( int nIndex )选入这些对象,它们包括一些固定颜色的刷子,画笔和一些基本字体。 如:
- BLACK_BRUSH 黑色刷子
- NULL_BRUSH 空刷子
- WHITE_PEN 白色画笔
- DEVICE_DEFAULT_FONT 默认字体
在Windows中使用GUI对象必须遵守一定的规则。首先需要创建一个合法的对象,不同的对象创建方法不同。然后需要将该GUI对象选入DC中,同时保存DC中原来的GUI对象。如果选入一个非法的对象将会引起异常。在使用完后应该恢复原来的对象,这一点特别重要,如果保存一个临时对象在DC中,而在临时对象被销毁后可能引起异常。有一点必须注意,每一个对象在重新创建前必须销毁,下面的代码演示了这一种安全的使用方法:
OnDraw(CDC* pDC)
{
a) CPen pen1,pen2;
b) pen1.CreatePen(PS_SOLID,2,RGB(128,128,128));//创建画笔对象一
c) pen2.CreatePen(PS_SOLID,2,RGB(128,128,0));//创建画笔对象二
d) CPen* pOldPen=(CPen*)pDC->SelectObject(&pen1);//选择对象进DC
e) drawWithPen1...
f) (CPen*)pDC->SelectObject(&pen2);//选择对象进DC
g) drawWithPen2...
h) pen1.DeleteObject();//再次创建前先销毁
i) pen1.CreatePen(PS_SOLID,2,RGB(0,0,0));//再次创建对象
j) (CPen*)pDC->SelectObject(&pen1);//选择对象进DC
k) drawWithPen1...
l) pDC->SelectObject(pOldPen);//恢复
} OnDraw(CDC* pDC) 函数是VC中最常见的图形输出刷新函数,参数pDC 为CDC类的一个指针,我们通过它进行画图操作。
相关专题
- (9880篇文章)数据库处理专题
- (4713篇文章)Wlan组网----家庭专题
- (6624次浏览)ASP生成图片验证码,不需要组件
- (5827次浏览)全国IP地址分配表(一)
- (5626次浏览)经验总结:ASP与存储过程解析
- (3818次浏览)DateDiff函数祥解
- (3472次浏览)实例演示:使用ASP生成HTML文件
- (3238次浏览)精华ASP代码收集
- (2578次浏览)VPN技术详解(上)
- (2369次浏览)哼,代理服务器的问题我自己搞定了。现在我
- (2327次浏览)经典!5分钟编写一个ASP论坛
- (2324次浏览)ASP入门与实例---IIS的安装与配置



