jujiawu1024
2016-02-07 06:27
采纳率: 97.3%
浏览 1.5k
已采纳

VIS MFC的Static控件如何进行涂色?

想做一个选择颜色的对话框,已经按照大神的方法放好了static,着色又不会了。能不能给出具体的代码,谢谢!

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • threenewbee 2016-02-08 00:38
    已采纳
     void CApp2Dlg::OnButton1() 
    {
        // TODO: Add your control notification handler code here
        CColorDialog colorDia;
         if (colorDia.DoModal() == IDOK)
         {
              m_color = colorDia.GetColor();
              GetDlgItem(IDC_STATIC_1)->InvalidateRect(NULL);
         }
    }
    
    HBRUSH CApp2Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
        HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
        m_brush.CreateSolidBrush(m_color);
        // TODO: Change any attributes of the DC here
        UpdateData(TRUE);
        if (pWnd->GetDlgCtrlID() == IDC_STATIC_1)
        {
            pDC->SetBkColor(m_color);
            pDC->SetBkMode(OPAQUE);
            return m_brush;
        }
    
        UpdateData(FALSE);
    
        // TODO: Return a different brush if the default is not desired
        return hbr;
    }
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 91program 2016-02-07 06:54

    你可以使用搜索引擎查找:MFC CStatus 颜色背景

    评论
    解决 无用
    打赏 举报
  • threenewbee 2016-02-08 00:39

    关键是重写OnCtlColor
    然后
    m_brush.CreateSolidBrush(m_color); //根据颜色创建画刷
    return m_brush; //返回

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题