日期:2014-05-20  浏览次数:20863 次

关于自绘图的刷新问题
我在窗口中使用wndProc中截获WM_NCPAINT事件,然后自己绘制整个窗体。

现在就是有几个问题,1个是为什么我调整窗体的大小导致整个窗体刷新,这个是主要问题,就是用MFC写的程序刷新很快,而我写的程序刷新很慢,导致拖动的时候不停的闪烁,有没有什么好的办法解决这个问题?

双缓冲、用BitMap来缓冲、只绘标题区等等,全部都试过了,效果不明显。

------解决方案--------------------
我的想法是画到一个内存图片1上,画好之后拷贝到内存图片2上,然后在绘图事件中拷贝图片2到窗口上。注意收到绘图事件的时候并不重画,只是拷贝。这样你缓慢的绘图过程可以放在一个线程或者定时器事件中慢慢来,也不会因为画到一半收到重绘事件而影响刷新。
------解决方案--------------------
up
------解决方案--------------------
你这个问题是连续产生WM_NCPAINT事件的问题,上一个事件还没有画好,下个个事件跟着来了,造成界面频频刷新引起的。所以应该只在内存画,画好了一次过copy到Graphics上,这样应该就没有闪烁了。
------解决方案--------------------
up
------解决方案--------------------
有个最快的办法,升级你机器的配置