我用VC的API函数编写了一个程序,我想修改按钮的颜色,我使用的是WM_CTLCOLORBTN消息,但是不知道为什么不能出现
期待的效果,我的代码如下,请各位高手帮小弟解决一下。
     case WM_CTLCOLORBTN: 
          HBRUSH hBrush;
  hBrush = CreateSolidBrush(RGB(0, 0, 0));
  if((HWND)lParam==GetDlgItem(hwnd,IDC_BUTTON2))
  {
     SetBkColor((HDC)wParam,RGB(0,0,255)); 
             SetTextColor((HDC)wParam,RGB(0,255,0)); 
  }
  return hBrush;
  break;
不知道这段代码应该怎样写,请你们帮我解决一下,告诉我应该怎么样写,谢谢了。

解决方案 »

  1.   

    不要使用局部变量画刷(HBRUSH hBrush)
      

  2.   

    按钮是自绘风格的吗?only owner-drawn buttons respond to the parent window processing this message. 
      

  3.   

    很麻烦,要自己建个buttoncolor类,自己些方法。
      

  4.   

    SetBKColor其实已经成功设置了背景色
    问题是后面的return hBrush又把背景色给覆盖了!所以你直接建立一个RGB(0,0,255)的hBrush,然后return它就行了