在Dlg中绘制了一个 自绘按钮,在按钮上贴PNG 图片,当 resize Dlg大小时 ,按钮的也会跟着变化,此时按钮的图片会闪烁,求解决。。::我设置了Dlg的 clip children 属性 ,但是按钮就没有了 自绘功能了 

解决方案 »

  1.   

    你是如何绘制按钮图片的闪烁一般都是由于绘图消耗太多CPU导致,优化绘制效率是关键
      

  2.   

    这个问题可以用双缓冲来解决
    你resize的时候,系统不停地刷背景再贴图
    肯定会闪烁
    你Google一下怎么实现双缓冲
    如果找不到,我可以给你代码
      

  3.   

    使用双缓存绘图来解决关于双缓存:http://www.sciencenet.cn/m/user_content.aspx?id=218397
      

  4.   

    对话框勾上clip children属性
      

  5.   

    首先当然想到是双缓冲的,但是根据我之前的做法,双缓冲是不够的.不知道搂住有没有注意到XP的SP3和SP2的窗体RESIZE的变化.RESIZE不会不断重绘,而只是出现一个框架,然后当你鼠标放开以后,才会重绘一次.这样可以大大节省资源和减少不必要的重绘.
      

  6.   

    网上很多自绘按钮的例子,自己写个继承CButton自绘按钮类,
    按钮贴图DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)函数里面实现,
      

  7.   

    你可以去www.codeproject.com网站上,有很多你需要的资料
      

  8.   

    看这里。
    http://bbs.aisnote.com/viewtopic.php?f=23&t=128
    解决Windows 程序界面闪烁问题的一些经验