老爸我爱你 2018-05-17 04:15 采纳率: 50%
浏览 1997
已采纳

MFC 自绘按钮划过或点击会出现闪烁问题,求助精通GDI高手解决

鼠标划进按钮再划出再划进,速度快一点或慢一点各种尝试,会发现闪炼现象(即中间会一个白色底短时间内出现),请做过相关开发的大神们帮解决

如下是一个vs2010中建立的测试工程,打包在下面链接。
链接: https://pan.baidu.com/s/1jnL4f6qapbUBP3od4WoQRw 密码: 1jqk

(ps: C币是不是给多了还是不够,C友们不要担心问题难,本人因为没做过贴图这块学习和开发,把重心放在别的地方,奉行拿来主义,这工程中的按钮自绘类我就是从别的C友博客中直接拷贝来的,我想在人家博客下面问,不知道何年马月才可能被回复,人家也不一定愿意去再看这问题,这个按钮闪烁问题解决了,我就谢谢各位了,可惜CSDN没法散币给帮助的大家)

(再PS:这闪烁问题我尝试解决,但是能力不够,我觉得问题最可能在 SelfControlPublic.cpp 这个类中,大楖是没有使用到双缓冲,但是不知道怎么改,我只想问题再点解决,所以提供下我的猜测)

(再再PS:下面的zqbnqsdsmd网友,我不需要这种贴一大段代码,我要修改好的工程或者一段能解决的方法,只采纳能解决我问题的答案,你这样贴,和我百度搜索各种尝试有啥区别)

  • 写回答

17条回答 默认 最新

  • 白色一大坨 2018-05-25 07:13
    关注

    void CPngButton::PaintParent()
    {
    CRect rect;
    GetWindowRect(&rect);
    Invalidate();
    //GetParent()->ScreenToClient(&rect);
    //GetParent()->InvalidateRect(&rect); //这里会导致闪烁,只能用双缓冲
    }
    我把这个函数改了一下,移动进去时候不会闪了,不知老兄是否还有时间看看啊,其实我这里有完整的一个很好用的图片按钮,如果老兄有兴趣,加个联系方式我发给你,你觉得满意也好结贴

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(16条)

报告相同问题?