更新控件中内容的消息是哪个啊。
我想把画背景色操作加在里面。

解决方案 »

  1.   

    响应控件所在对话框的:WM_CTLCORLOR
      

  2.   

    http://sanjianxia.myrice.com/vc/vc37.htm
      

  3.   

    响应事件:WM_CTLCORLOR ,函数参数有指向控件ID的!然后再得到控件的CWnd画背景!
      

  4.   


    HBRUSH CAlarmDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    switch( nCtlColor ) 
    {
    case CTLCOLOR_EDIT:
    pDC->SetBkColor( RGB(240,240,230) );  // yellow
            return m_hEditBrush;
    break;
    default:
    pDC->SetBkColor( RGB(BKRED,BKGREEN,BKBLUE) );    // red
    return m_hOtherBrush;
    }
    return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    }
    HBRUSH m_hOtherBrush;
    m_hOtherBrush = CreateSolidBrush( RGB(BKRED,BKGREEN,BKBLUE) );
      

  5.   

    同意 :new_strangercase CTLCOLOR_EDIT:
    pDC->SetBkColor( RGB(240,240,230) );  
    HBRUSH m_hEditBrush = CreateSolidBrush( RGB(BKRED,BKGREEN,BKBLUE) );
    return m_hEditBrush;
      

  6.   

    HBRUSH m_hEditBrush = CreateSolidBrush( RGB(BKRED,BKGREEN,BKBLUE) );
    return m_hEditBrush;啊呀,返回了一个局部对象的指针。在设置颜色时为什么有一些颜色设置无效??
    如:
    pDC->SetBkColor( RGB(14,14,255) ); //???
      

  7.   

    这里起作用的是一些常用的256索引值,你去看看MSDN的说明,或者是Windows的帮助
      

  8.   

    那怎样才能使用 pDC->SetBkColor( RGB(14,14,255) );  哪。
      

  9.   

    对EDIT控件来说,只有返回刷子有效,SetBkColor这个函数不是给它用的,是给别的控件用的。如CRichEdit
      

  10.   

    RGB(14,14,255)
    刷子这个颜色好像也不行啊。
      

  11.   

    pDC->SetBkMode(TRANSPARENT);// you cannt edit it anymore
    pDC->SetTextColor(RGB(255,0,0));
    return (HBRUSH)brush.GetSafeHandle();
      

  12.   

    derive a CEdit class namely CEditEx:
    in its header file:
    ///////////////////////////////////
    CBrush brHot;
    CBrush br;
    afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
    ///////////////////////////////////in its implentation file:
    //////////////////////////////
    CEditEx::CEditEx()
    {
    brHot.CreateSolidBrush(RGB(255,255,255));
    br.CreateSolidBrush(RGB(221,221,221));
    }
    BEGIN_MESSAGE_MAP(CEditEx, CEdit)
    //{{AFX_MSG_MAP(CEditEx)
    ON_WM_CTLCOLOR_REFLECT()
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()HBRUSH CEditEx::CtlColor(CDC* pDC, UINT nCtlColor) 
    {
    //if(m_bMouseOver)
    {
    pDC->SetBkColor(RGB(255,255,255));
    return brHot;
    }
    //else
    //{
    // pDC->SetBkColor(RGB(221,221,221));
    // return br;
    //}
    }
    //////////////////////////////I have published a mouse sensitive CEdit class on wwww.codeproject.com
    If you still have some interest,go and check it:
    "a focus-sensitive CEdit class"
    by DavidRipple