设为首页 加入收藏

TOP

图形基础(二十一)
2010-12-30 21:10:52 来源: 作者: 【 】 浏览:40157
Tags:图形 基础

保存装置内容
 

通常,在您呼叫GetDC或BeginPaint时,Windows用预设值建立一个新的装置内容,您对属性所做的一切改变在装置内容用ReleaseDC或EndPaint呼叫释放时,都会丢失。如果您的程式需要使用非内定的装置内容属性,则您必须在每次取得装置内容代号时初始化装置内容:

虽然在通常情况下这种方法已经很令人满意了,但是您还可能想要在释放装置内容之後,仍然保存程式中对装置内容属性所做的改变,以便在下一次呼叫GetDC和BeginPaint时它们仍然能够起作用。为此,可在登录视窗类别时,将CS_OWNDC旗标纳入视窗类别的一部分:

现在,依据这个视窗类别所建立的每个视窗都将拥有自己的装置内容,它一直存在,直到视窗被删除。如果使用了CS_OWNDC风格,就只需初始化装置内容一次,可以在处理WM_CREATE讯息处理期间完成这一操作:

这些属性在改变之前一直有效。

CS_OWNDC风格只影响GetDC和BeginPaint获得的装置内容,不影响其他函式(如GetWindowDC)获得的装置内容。以前不提倡使用CS_OWNDC风格,因为它需要记忆体;现在,在处理大量图形的Windows NT应用程式中,它可以提高性能。即使用了CS_OWNDC,您仍然应该在退出视窗讯息处理程式之前释放装置内容。

某些情况下,您可能想改变某些装置内容属性,用改变後的属性进行绘图,然後恢复原来的装置内容。要简化这一过程,可以通过如下呼叫来保存装置内容的状态:

现在,可以改变一些属性,在想要回到呼叫SaveDC前存在的装置内容时,呼叫:

您可以在呼叫RestoreDC之前呼叫SaveDC数次。

大多数程式写作者以不同的方式使用SaveDC和R

ath

GetClipBox
首页 上一页 18 19 20 21 22 23 24 下一页 尾页 21/83/83
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇键盘 下一篇输出文字

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: