设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 服务器 > 系统 > 正文

winapi – Win32 – 什么可能导致不正确的绘图?(2)

发布时间:2021-01-28 02:16 所属栏目:52 来源:网络整理
导读:每次创建画笔或加载位图时,都会创建一个GDI对象. Windows限制了您可以创建的GDI对象的数量.如果您反复创建对象而不删除它们,您将达到限制并且其他对象的创建将失败.当发生这种情况时,您的显示器看起来会出错 – 您

每次创建画笔或加载位图时,都会创建一个GDI对象. Windows限制了您可以创建的GDI对象的数量.如果您反复创建对象而不删除它们,您将达到限制并且其他对象的创建将失败.当发生这种情况时,您的显示器看起来会出错 – 您会看到错误的颜色,默认字体等.

任务管理器将显示进程已分配的GDI对象的数量(在“进程”选项卡中,转到“查看”|“选择列”).价值可能会有一点波动,但不应该随着时间的推移而增长.

使用GDI的标准模式是:

>创建对象(例如,使用CreateSolidBrush的画笔).
>使用SelectObject将对象选择到设备上下文中,并记住原始对象(返回值).
>做你的绘画或其他什么.
>使用SelectObject将原始对象选回设备上下文. (当然,这也会从设备上下文中取消选择您的对象.)
>使用DeleteObject删除对象.

您只执行第2步的一半并跳过第4步和第5步.

然后请注意,在每次喷涂操作中都不需要重复步骤1和5.您可以分别将它们移动到程序初始化和终止.并且可以跳过程序终止时的清理,因为OS无论如何都要这样做.

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读