如何改变动态创建的CButton的颜色和字体颜色?

解决方案 »

  1.   

    重载OnCtlColor函数,根据控件ID或句柄来判断是哪个控件
      

  2.   

     CButton *pTxt=(CButton*)GetDlgITem(IDOK); 
    CDC* pDC=pTxt->GetDC(); 
    CRect rc; 
    pTxt->GetClientRect(&rc); CBrush brush; 
    brush.CreateSolidBrush(RGB(0,250,250)); 
    pDC->FillRect(&rc,&brush); pDC->SetBkColor(RGB(120,120,250)); 
    pDC->SetTextColor(RGB(0,120,250)); 
      

  3.   

    那得重绘这个button了,否则一点击什么的系统的不就又出来了吗
      

  4.   

    图方便的话就在网上去下载CButtonST源代码,找一份教程跟着用就可以了,如果想自己学的话那就只有自绘了
      

  5.   

    从CButton继承一个自定义按钮类,
    重载
    virtual void CButton::DrawItem( 
    LPDRAWITEMSTRUCT lpDrawItemStruct ); 
    在它里面可以任意改动。
      

  6.   

    看这个
    void CXXXButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) 
    {
           UINT uStyle = DFCS_BUTTONPUSH;
       // This code only works with buttons.
       ASSERT(lpDrawItemStruct->CtlType == ODT_BUTTON);
       CRect imgRc;
       CRect txtRc = lpDrawItemStruct->rcItem;