你用什么image控件?是VC还是VB的
解决方案 »
- 客户端发connect请求,服务器accept或不accept,分别有什么结果
- 画图程序中橡皮擦的功能怎么实现的?
- WSAAsyncSelect函数和listen函数的先后问题(新手请教)
- 没有分了,软盘启动PC后,如何自动执行软盘上的一个exe文件??
- 请高手帮助一下, 小小的问题!
- 如何编程监控系统盘剩余空间,cpu使用率,内存使用率,病毒库版本?
- 用wininet编程意外问题,新手需指点
- 我的CListCtrl无法将选中行显示整行的兰色,是代码中的什么问题
- 求高手帮助!这问题困扰了我两个礼拜了,都想哭了。
- 请问; LPCTSTR是什么意思?越详细给分越多
- 我用第三方软件做了一个.chm文件,如何用帮助主题调用它?谢谢。
- 那位指点一下!很简单的问题!
如何避免闪烁
在知道图形显示闪烁的原因之后,对症下药就好办了。首先当然是去掉MFC
提供的背景绘制过程了。实现的方法很多,
* 可以在窗口形成时给窗口的注册类的背景刷付NULL
* 也可以在形成以后修改背景
static CBrush brush(RGB(255,0,0));
SetClassLong(this->m_hWnd,GCL_HBRBACKGROUND,(LONG)(HBRUSH)brush);
* 要简单也可以重载OnEraseBkgnd(CDC* pDC)直接返回TRUE
这样背景没有了,结果图形显示的确不闪了,但是显示也象前面所说的一样,
变得一团乱。怎么办?这就要用到双缓存的方法了。双缓冲就是除了在屏幕上有
图形进行显示以外,在内存中也有图形在绘制。我们可以把要显示的图形先在内存中
绘制好,然后再一次性的将内存中的图形按照一个点一个点地覆盖到屏幕上去(这个
过程非常快,因为是非常规整的内存拷贝)。这样在内存中绘图时,随便用什么反差
大的背景色进行清除都不会闪,因为看不见。当贴到屏幕上时,因为内存中最终的图形
与屏幕显示图形差别很小(如果没有运动,当然就没有差别),这样看起来就不会闪。
在拖动前调用 LockWindowUpdate
完成后调用 UnlockWindowUpdate
我没用过,你试试吧!!