为什么编写的图形控件有黑线闪烁?
本人自己写了个BORLAND C++的图形控件。在进行测试时候发现如果如下情况:
屏幕上放置的控件(都是自己写的控件)比较多,其背景颜色选择黑色。在运行时候有时候屏幕上会闪烁黑线,但黑线出现的地方和时间也没有规律,有时候有有时候无。
如果背景选择浅色的话并且与窗体颜色相同,好像又无此现象。
编写控件画图形都是用程序一笔一笔画的,首先是直接画在控件的画布上,发现有这问题后,又试了先在建立TBITMAP,在其画布上画,然后拷贝到控件的画布上,结果还是一样,还是有黑线闪烁。
我想问问这是什么原因造成的?应该要注意一些什么 ?
[解决办法]
如果你的控制是从TGraphicControl继承的话,试试把父控件设置成doublebuffered
如果是TWinControl,那么试试调整一下WS_CLIPSIBLINGS和WS_CLIPCHILDREN样式。
[解决办法]
把父控件设置成doublebuffered
[解决办法]
lz先用Graphics::TBitmap 去画
然后通过BitBlt拷贝到界面上去试试?
[解决办法]
用BitBlt()双缓冲解决图象闪烁的案例不少的
[解决办法]
把Form->DoubleBuffered = true;
[解决办法]
因为刷新的缘故,试试别的方法,比如内存设备上下文,或者BitBlt()