比如 当消息为wm_lbuttondown 按左键时背景颜色变化。这样的代码怎么写谢谢

解决方案 »

  1.   

    给你点代码.在头文件添加一个成员
    CBrush m_brBackground;
    添加
    afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);在实现文件里
    消息映射里添加
    ON_WM_CTLCOLOR()
    添加消息响应函数
    HBRUSH CHostInfoMgr::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    {
    /*
    HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor); // TODO:  在此更改 DC 的任何属性 // TODO:  如果默认的不是所需画笔,则返回另一个画笔
    return hbr;
    */
       if(m_brBackground.GetSafeHandle())
       {
    m_brBackground.DeleteObject();
       }
       return m_brBackground.CreateSolidBrush(RGB(193,215,245));  // 颜色自己改
    }
      

  2.   

    消息为wm_lbuttondown 按左键时背景颜色变化这个时候..可以增加按左键的消息处理函数然后在里面增加这样一句
    使得对话框背景重新刷新..
    RedrawWindow(NULL, NULL, RDW_ALLCHILDREN | RDW_INVALIDATE | RDW_UPDATENOW | RDW_FRAME | RDW_ERASE);另外可以对
    return m_brBackground.CreateSolidBrush(RGB(193,215,245)); // 颜色自己改
    这里的颜色作为一个成员变量...
    在左键消息处理函数里改变 这个颜色值..