从网上下载了一个PNGButton类来实现了PNG的按钮, 三种状态的图片我是放在同一个PNG文件中, 现在我的问题是: 
1.鼠标停留在按钮上的时候我的图片跳起来的;
2. 当鼠标离开按钮的时候,跳起来的图片并没有檫除,这使得我正常的图片会有一部分叠影;是不是可以每次画按钮的时候我先檫除一下以前的? 还是有其他的解决方法,谢谢

解决方案 »

  1.   

    还有一个问题, 我用Static Text来显示文字, 背景透明
    if(nCtlColor == CTLCOLOR_STATIC)
    {
    pDC->SelectObject(m_fontBig);
    pDC->SetTextColor(RGB(255, 0, 0));
    pDC->SetBkMode(TRANSPARENT); //背景设为透明 return (HBRUSH)::GetStockObject(NULL_BRUSH);
    }这个是没有问题的, 但是我要改变Static Text的内容的时候, SetWindowText(), 却不能清除掉之前的内容,而是覆盖,前面的内容还是会存在。
      

  2.   

    需要先InvalidateRect(),然后再SetWindowText
      

  3.   


    在改变内容后,使用Invalidate();
      

  4.   

    你的PNG按钮,背景是透明的吧?
    状态改变后,要刷新按钮的父窗口.
    参考:http://bbs.csdn.net/topics/390401008
      

  5.   

    不想闪烁,那就直接把父窗口的背景图复制到按钮DC上
    参考:自绘实现半透明水晶按钮
    http://bbs.csdn.net/topics/390336507