C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  117 Posts :: 2 Stories :: 61 Comments :: 0 Trackbacks

常用链接

留言簿(8)

搜索

  •  

最新评论

阅读排行榜

评论排行榜

      画笔和画刷都是GDI所定义的图形对象,画笔是线条的样式,画刷则是封闭图形内部填充的样式。可以自定义绘图所用画笔及画刷的样式,系统预设画笔的样式为BLACK_PEN,画刷的样式为NULL_BRUSH

      要自定义画笔或画刷,可以使用下列3API函数。

HPEN CreatePen(int 样式, int 宽度, COLORREF 颜色); //建立画笔
HBRUSH CreateHatchBrush(int 样式, COLORREF颜色);   //建立阴影画刷
HBRUSH CreateSolidBrush(COLORREF 颜色);   //建立单色画刷

      从上面的3API函数可以看出,其返回值都是以英文字母“H”开头,“H”在这里代表的就是前面所提过的“handle”(句柄)。

      建立新画笔与画刷之后,必须在所要进行绘图的DC中选用它们,才会产生预期的画笔及画刷效果,选用的函数如下:

HGDIOBJ SelectObject(HDC hdc, HGDIBJ GDI对象); //选用GDI对象

      这个SelectObject()函数所输入的第二个参数就是GDI对象的handle,而返回值则是前一次所使用的GDI对象。除了这一小节所介绍的画笔,画刷是属于GDI对象外,其他的GDI对象还有:位图、字体、区域及调色板。

      GDI对象一经建立便会占用部分内存,一旦不使用的时候,务必将它们删除,删除函数如下:

BOOL DeleteObject(HGDIOBJ GDI对象);   //删除GDI对象

      若删除对象成功,则会返回布尔值“TRUE”,若失败则返回“FALSE”。


范例ch2_1:建立7种系统所提供的画笔即画刷样式,将结果绘制于窗口中
下载地址:ch2_1(上传到windows live空间,可能需要MSN账号登陆)
说明:程序源代码中有相关的注释。

最后运行结果图:
 

PS:如想获得更多关于Visual C++游戏开发的内容,可点击随笔:《Visual C++游戏编程基础》学习笔记——索引随笔
posted on 2010-04-08 12:59 烟皑 阅读(3586) 评论(1)  编辑 收藏 引用 所属分类: 《Visual C++游戏编程基础》学习笔记

Feedback

# re: 画笔与画刷 2015-12-05 22:57 张一一
我来瞅瞅  回复  更多评论
  


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理