- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
常用GDI绘图函数(免费)
常用GDI绘图函数(免费)
函 数 说 明
CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子
CreateDIBPatternBrush 用一幅和设备无关的位图创建一个刷子,以便指定刷子样式(图案)
CreateDIBPatternBrushPt 用一幅和设备无关的位图创建一个刷子,以便指定刷子样式(图案)
CreateHatchBrush 创建带有阴影图案的一个刷子(阴影图案见注解)
CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
CreatePen 用指定的样式、宽度与颜色创建一个画笔
CreatePenIndirect 根据指定的LOGPEN结构创建一个画笔
CreateSolidBrush 用纯色创建一个刷子
ExtCreatePen 创建一个扩展画笔(装饰或几何)
GetStockObject 取得一个固有对象(Stock)。这是可由任何应用程序使用的windows标准对象之一
例1∶创建一个红色实线画笔,画笔宽度为3个像素点
Dim NewPen As Long
Private Const PS_SOLID = 0
NewPen=CreatePen (PS_SOLID,3,RGB(255,0,0))
注∶其中PS_SOLID常数代表实线
例2∶创建阴影刷子
LOGBRUSH结构的定义如下∶
Private Type LOGBRUSH
lbStyle As Long
lbColor As Long
lbHatch As Long
End Type
以下代码餍了创建一个 刷子样式为 阴影(BS_HATCHED) ,阴影类型为十字交叉(HS_CROSS)的红色画笔。
Dim BrushInfo As LOGBRUSH
BrushInfo.lbStyle = BS_HATCHED
BrushInfo.lbColor = RGB(255,0,0)
BrushInfo.lbHatch = HS_CROSS
NewBrush = CreateBrushIndirect(BrushInfo)
例3∶用纯色创建刷子(这个例子中是红色)
NewBrush =CreateSolidBrush(vbRed)
同样,用其他几个函数,按照其用法可以创建相应的GDI绘图对象。现在,您大概了解有以上这些函数与,理解给出的几个例子就可以了。稍后,我们结合实际例子,更深入地探讨这些函数的用法。
三、拿起与放下画笔(GDI对象)
现在我感觉好象向一群绘画系的学生讲课,尽管自己不怎么会绘画。首先是练基本功,怎样拿起画笔与放下画笔,这可能是绘画专业学生首先要学习的吧?当然,更广义地讲应当是怎样选择与删除GDI绘图对象。
在通过前述方法来创建一个GDI对象句柄(上例中的NewBrush,NewPen等)以后,为了使用它们,我们必须用SelectObjecth API函数把它们选入相应的设备场景。一个设备场景在某一时刻、在每一种类型中只能拥有一个对象,如一个画笔与一个刷子一个位图等。
SelectObjecth函数的用法非常简单,需要记住的是,此被调用后,如果成功将返回旧的对象句柄。你需要把它保存起来。当然,这一过程只需要把返回值附值于某一Long型变量就可以了。如∶
OldPen=SelectObject(Picture1.hDC , NewPen)
接下来该做什么呢?对对,这位同学说的对∶绘图。该怎么绘图呢?不,不,不要着急,这个问题,我们留在下一节中讨论,现在你只需记住,这里可以画些圆呀、矩形呀、添充多边型呀的操作。那么,绘图操作结束以后该怎么办呢?答案是∶应当把旧的绘图对象回设到设备场景中去。如下∶
SelectObject Picture1.hDC,OldPen
这样,设备场景将恢复到我们为其选入绘图对象以前的状态。因为,我们不能断定其他绘图函数会使用什么样的绘图对象。因此把原来的绘图对象放回去乃是一个上策。但,如果你接着要为设备场景选择另一个对象,这个步骤可以留在后面进行。那么在这次的选入过程中就没有必要保存旧的对象句柄了,这是因为SelectObject函数返回的旧对象的句柄就是刚才我们为其
文档评论(0)