我想改变窗体的灰色,是使用OnNcPaint()吗?怎么用?可以给个例子吗?

解决方案 »

  1.   

    BOOL CXXView::PreCreateWindow(CREATESTRUCT& cs)
    {
    cs.lpszClass=AfxRegisterWndClass(
    CS_HREDRAW|CS_VREDRAW
    ,0
          ,(HBRUSH)::GetStockObject(GRAY_BRUSH)
      ,0);
    ..
    }
      

  2.   

    我觉得应该响应这个消息:
    afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);HBRUSH DlgCustomSoundCfg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

    // TODO: Change any attributes of the DC here
    //这里改变了一个按钮控件的颜色。
    if (pWnd->GetDlgCtrlID()==IDC_3DTEXT)//改变按钮的背景颜色
    {
    pDC->SetBkMode(TRANSPARENT);
    switch(m_skinID)
    {
    case 0:
    return m_myBrush0;
    break;
    case 1:
    return m_myBrush1;
    break;
    case 2:
    case 3:

    return m_myBrush2;
    break;

    default:
    return m_myBrush3;
    break;
    }

    }

    // TODO: Return a different brush if the default is not desired
    return hbr;
    }
      

  3.   

    用OnPaint也可以实现
    CYourDialog::OnPaint()
    {
      CPaint dc(this);
      CBrush br(0xffffff);
      CRect rc;
     
      GetClientRect(rc);
      dc.FillRect(rc, &br);
    }