关于 GDI 中的全局变量 ( 积分: 100 )

  • 主题发起人 主题发起人 vvyang
  • 开始时间 开始时间
V

vvyang

Unregistered / Unconfirmed
GUEST, unregistred user!
由于一个图形处理程序中要频繁进行绘图,我是否可以设置一个全局的画笔句柄(HPEN),而不是每次在绘图时临时创建又临时销毁...
不过据说 GDI 对象很有限的说,我看 MSDN 上的很多例子就是用时临时创建,不过这样频繁地创建、销毁不影响效率么...
 
画在内存bitmap中,贴出来,多做几层缓存
 
To 0桁骀:
您说的实在让偶费解,难道向内存位图中画图就不需要画笔和画刷了么?我是说画笔和画刷是不是必须是临时对象,画完就销毁,需要再重建?另外我不是用的 VCL,是纯 API...
 
频繁的创建画笔画刷是会影响效率;
但是你能确定保存起来的画笔画刷是你想要的效果吗?如果笔宽换了,笔刷颜色换了不是还是要重新创建一个吗。。。
 
To hwljerry:
同一种颜色、同一种宽度的画笔可能要连续画多种图形,而且不是在一次操作中完成的,而且 GDI Plus 中的画笔对象可以直接更改画笔颜色和宽度。我只是想问问,是不是非得用临时变量,用完销毁,毁完再建?
 
可以用全局变量,笔、刷子等的句柄都是可以保存的。只是选进hdc绘制设备后,一定要在销毁hdc前把它选出来。当然,在程序结束前一定要记得销毁这些笔和刷子的句柄,因为这些句柄是要占用系统资源的,也因此不要建太多的全局变量。
 
楼上说的对。其实Windows中不也有一些默认的画笔和画刷吗,如果你能预先确认要频繁使用到哪些画笔画刷就可以预先创建出来备用咯。
 
谢谢各位了...
临时创建的仅仅是画笔的结构,而不是真正创建他们的实例...
不过似乎临时创建还是有它的好处的,还是临时创建再销毁好了...
 
后退
顶部