VC中关于屏幕闪烁的解决办法

来源:百度知道 编辑:UC知道 时间:2024/09/21 08:05:45
用鼠标在屏幕上画线,如果直接画到屏幕DC上肯定会闪烁。
因为我的窗口背景是地图。很多这些地图编辑程序效果都很好,不会闪烁啊。
看了网上贴的一些关于位图透明的代码,原理就是一个Mask 位图和Image 位图,进行一些位运算后再贴到屏幕上,可是也会闪烁,而且闪烁的时候会出现一大片的黑色,然后消失。
请问有更好的办法么?
不太清楚怎么屏蔽反色,

不是闪烁,是焦点选择的现象,区域被全选时自动反色,选择失效反色消失,或者反复重绘区域时反色,重绘完成反色消失!
反色出现-反色消失 交替多了速度快了,就成闪烁一样了!
屏蔽反色就可以了,和EDIT BOX里刷屏时屏蔽反色一样的道理!

有黑色是 WM_ERASEBKGND 的原因。
响应 WM_EREASEBKGND 消息,返回FALSE;

你要直接画在屏幕上,闪烁,是因为你触发了屏幕窗口的重绘消息。你可以先锁定屏幕LockWindowUpdate(),并且绘制完成后直接清除屏幕窗口的无效区 ValidateRect 。就行了。

具体的控制操作,我也不清除,看你的具体需求了