本人在一个对话框中使用了一个日期时间选择控件(CDateTimeCtrl)。由于所在对话框的配色方案不同于缺省方案(为蓝底白字),为风格统一,我想把该CDateTimeCtrl 也设为蓝底白字。请高手指教。

解决方案 »

  1.   

    补充:CDateTimeCtrl有一个方法SetMonthCalColor可以设置下拉日历的颜色,但我需要设置的是没有下拉时那个框的前景色和背景色。
      

  2.   

    需要自己重载CDateTimeCtrl的WM_ERASEBKGND消息,
    CxxDateTimeCtrl::OnEraseBkgnd(CDC *pDC)
    {
    // 不掉用系统的刷新背景方案
    return TRUE;
    }
      

  3.   


    其实背景色我已经搞定了,也是重载OnEraseBkgnd,示例代码如下:
    BOOL CMyDTP::OnEraseBkgnd(CDC* pDC) 
    {
    CBrush backBrush(RGB(255, 128, 128));

    // Save old brush
    CBrush* pOldBrush = pDC->SelectObject(&backBrush);

    CRect rect;
    pDC->GetClipBox(&rect);     // Erase the area needed

    pDC->PatBlt(rect.left, rect.top, rect.Width(), rect.Height(), PATCOPY);
    pDC->SelectObject(pOldBrush); return TRUE;
    }但前景色怎么改?请赐教。