vc界面改颜色(

解决方案 »

  1.   

    1
    SetDialogBkColor
    2
    响应WM_CTLCOLOR
    3
    自画DrawItem
      

  2.   

    怎么响应WM_CTLCOLOR呢?能说详细点吗??
      

  3.   

    呵呵,大概这个样子。HBRUSH CXXXXFrameWnd::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CFrameWnd::OnCtlColor(pDC, pWnd, nCtlColor);

    // TODO: Change any attributes of the DC here
    switch(nCtlColor) {
    case CTLCOLOR_EDIT:
    {
                         ...
    }
    break;
    case CTLCOLOR_STATIC:
    {
                          ...

    }
    break;
    case CTLCOLOR_LISTBOX:
    {
    pDC->SetBkMode(TRANSPARENT);
    return hbr;
    }
    default:
    break;
    } if(m_BKBrush.m_hObject)
    m_BKBrush.DeleteObject();
    m_BKBrush.CreateSolidBrush(RGB(0,0,0));
    return (HBRUSH)m_BKBrush;

    }
      

  4.   

    可以通过:CClordialog()这个函数去改哦
      

  5.   

    BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
    WM_CTLCOLOR//加入消息处理
    END_MESSAGE_MAP()