您的位置:首页 > 编程语言

高级GDI图形编程(1)

2007-05-19 22:13 232 查看
1.图形设备描述表
一个图形描述表实际上就是对一种安装在系统中的视频图象卡的描述。同时要记住的是同时还是当前绘制工具的描述。

2色彩、画笔和画刷
a.能够在计算机屏幕上绘制的对象的类型并没有多少。只有点、线和矩形。其他的任何东西都是这些基本图元对象类型的组合。
b.GDI一般一次只使用一个画笔和画刷。在你的系统配置中可以有许多画笔和画刷,但是在当前图形设备描述表中每次只有一个画笔或画刷被激活。这样就必须为图形设备描述表选择对象,以便于使用。

3使用画笔
a.画笔句柄称之为HPEN. HPEN pen_1 = NULL
b.创建画笔的两种方法
   (1)HPEN white_pen = NULL;
      White_pen = GetStockObject(WHITE_PEN);
   (2)自定义方法:HPEN CreatePen(int fnPenStyle,
                                int nWidth,
                                COLORREF crColor)
      例如:HPEN red_pen = CreatePen(PS_SOLID,1,RGB(255,0,0));

4在图形设备描述表中选择画笔
HGDIOBJ SelectObject(HDC hdc,
             HGDIOBJ hgdiobj)
需要注意的是,该函数可以在调用时保存上一个对象句柄并一直存储着新句柄。
例如:HDC hdc;
     HPEN blue_pen = CreatePen(PS_SOLID,1,RGB(0,0,255));
     HPEN old_pen = NULL;
     old_pen = SelectObject(hdc,blue_pen);
根据上面的代码,应该很清楚怎样恢复原来的画笔句柄。

5.DeleteObject()函数的使用
(1)当已经使用GetStoctObject()或CreatePen()创建的画笔进行工作之后,必须保存它们。该项工作就由DeleteObject()函数来完成,该函数与SelectObject()函数相类似,也是一个多种组合形式的函数,可以删除多种不同的句柄类型
函数原型BOOL DeleteObject(HGDIOBJ hobject);
(2)注意,当删除一个当前选定的对象,或者选定一个已经删除的对象,将导致发生错误,并且可能是一个GP默认值
(3)可以在程序结束时进行DeleteObject()工作,但是如果创建时使用对象较多,则应该在不使用时随时删除它们,因为资源有限。
(4)不要尝试删除已经删除过的对象,这样会导致无法预料的结果

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息