在对话框上加了一个静态组框,打算在里面画曲线,怎么改变groupbox内的颜色显示啊,打算改成白的,在消息函数OnCtlColor中添加:
    if(pWnd->GetDlgCtrlID() == IDC_STATIC_2) //IDC_STATIC_2为我要改变组框ID
        pDC->SetBkColor(RGB(255,0,0)); 
结果只把组框的文字显示部分背景改变了,可我想改变组框内部的颜色啊 ,不知道我说明白了没有

解决方案 »

  1.   

    还有,picture控件得背景也不会改变,为啥呢
      

  2.   

    SetBkColor本身就是修改文字背景的,你可以自己绘制背景
      

  3.   

    就是说组框内部的颜色不属于文字背景,不能用SetBkColor,那该怎么绘制啊?
      

  4.   

    OnCtlColor中的pdc不就是组框的设备环境吗
      

  5.   

    不要用 pDC->SetBkColor(RGB(255,0,0)); 
       
    用return (HBRUSH)m_blush 试试
      

  6.   

    pDC->SetBkMode(TRANSPARENT);
    return (HBRUSH)(m_blush.GetSafeHandle());
      

  7.   

    大家说的没错,可对组框不起作用,代码如下
    HBRUSH Cmydlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

    // TODO: Change any attributes of the DC here
      if (nCtlColor==CTLCOLOR_STATIC)
      {  return m_hredbrush;//事先定义的红色画刷m_hredbrush
      } 
    结果是静态文本控件变红了,组框只有标题文字边框变红了,似乎组框内部不属于组框似的?