我在学习VC界面的修改,一般的VC界面颜色都是灰色的,我怎么改变控件的颜色呀?
比如说Button的颜色,Radio的颜色,以及背景的颜色等等?
请各位告诉帮帮忙,最好能附加一段程序的代码。

解决方案 »

  1.   

    重载OnCtlColor
    在这个函数里修改
      

  2.   

    http://www.softechsoftware.it/cbuttonst.html
      

  3.   

    http://topic.csdn.net/t/20000831/06/27641.html
      

  4.   

    我是这样解决的:重载OnCtlColor函数,对应的控件颜色就可以修改了,下面是我实现对Static1,Static2,Static3颜色的修改代码,希望可以帮助你。
    HBRUSH yang::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    CBrush m_brush; 
        m_brush.CreateSolidBrush(RGB(0,255,0)); 
    CStatic*   pStatic1;  
      CStatic*   pStatic2;  
      CStatic*   pStatic3;
      //CStatic*   pStatic3;  
      pStatic1   =   (CStatic*)GetDlgItem(IDC_STATIC_NAME);  
      pStatic2   =   (CStatic*)GetDlgItem(IDC_STATIC_PW);
      pStatic3   =   (CStatic*)GetDlgItem(IDC_STATIC3); 
      //pStatic3  =   (CStatic*)GetDlgItem(IDC_STATICINFO3);  
      //   TODO:   Change   any   attributes   of   the   DC   here  
      if(nCtlColor==CTLCOLOR_STATIC)  
      {  
      if(pWnd->m_hWnd   ==   pStatic1->m_hWnd)  
      pDC->SetBkColor(RGB(51,51,51));
      pDC->SetTextColor(RGB(255,255,255)); 
      if(pWnd->m_hWnd   ==   pStatic2->m_hWnd)  
      pDC->SetBkColor(RGB(51,51,51));
      pDC->SetTextColor(RGB(255,255,255)); 
      if(pWnd->m_hWnd   ==   pStatic3->m_hWnd)  
      pDC->SetBkColor(RGB(51,51,51));
      pDC->SetTextColor(RGB(255,255,255));
      //if(pWnd->m_hWnd   ==   pStatic3->m_hWnd)  
      //pDC->SetBkColor(RGB(255,0,255));  
      }    //HBRUSH   hbr   =   CDialog::OnCtlColor(pDC,   pWnd,   nCtlColor);   
    // TODO: Return a different brush if the default is not desired
    return hbr;
    }
      

  5.   

    我刚才所说的是改变除了button之外的控件颜色,要改变button的颜色,如果改变背景需要重载一些函数,比较麻烦,可以使用给位图贴图的办法。你可以试试看。
      

  6.   

    我是用API函数写的这么一段代码?用API函数怎么实现呀?
    请大家帮帮忙。五楼兄弟使用的是MFC编写的VC程序。
    急急急急急急
    请各位帮忙。