利用SetCapture和ReleaseCapture为控件添加了鼠标移出和移入判断,为什么当鼠标移入时,会出现闪烁现象?
我修改了控件的autoRedraw属性,但仍不行,请教如何避免它

解决方案 »

  1.   

    两种方式来解决.
    一是可能你的代码不够优化,导致鼠标移入时运算量过大,而VB是单线程,当界面更新时由于频繁运算导致更新延迟,从而出现闪烁现象(即时使AutoRedraw=True),因此可优化代码,减少更新延迟时间。
    二是自己编程处理控件刷新问题,首先生成一个内存位图设备CreateCompatibleBitmap,然后用SetWindowLong截获控件的消息处理函数,最后自己处理WM_PAINT消息,当需要更新时一次性复制位图BitBlt,这样就不会出现闪烁了。不过在VB的IDE中,SetWindowLong处理得慎重,否则会崩溃。