怎样改变Command控件的颜色,以及窗体Dialog的颜色。有不用程序实现的方法吗?

解决方案 »

  1.   

    响应WM_CTLCOLOR消息,根据pWnd知道是控件窗体指针,从nctlColor知道是什么类型控件的背景,然后用pDC去改变喽
      

  2.   

    响应WM_CTLCOLOR,返回brush即可。
      

  3.   

    给你个例子:
    HBRUSH CMyDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

    // TODO: Change any attributes of the DC here
    switch(nCtlColor)
    {
    case CTLCOLOR_STATIC:
    pDC->SetBkMode(TRANSPARENT);//TRANSPARENT设置背景透明
    pDC->SetTextColor(RGB(0,0,255));//设置文字颜色
    return hbr;
    case CTLCOLOR_LISTBOX:
    pDC->SetBkMode(TRANSPARENT);
    pDC->SetTextColor(RGB(0,0,255));
    return hbr;
    case CTLCOLOR_EDIT:
    pDC->SetBkMode(TRANSPARENT);
    pDC->SetTextColor(RGB(255,100,155));
    return hbr;
    }
    return hbr;
    }