看到很多软件里的Groupbox的四个角都是圆形的,而不是像VC里普通的方形,VC里要用DrawItem自绘制吗?
如果是的话,在DrawItem里该如何绘制?

解决方案 »

  1.   

    重载CButton
    在DrawItem函数中判断窗口风格是不是BS_CHECKBOX
    如果是你自己想画什么样就随便了
    可以上www.codeproject.com上找一找多的很
      

  2.   

    void CMiniButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) 
    {
    // TODO: Add your message handler code here and/or call default

    //从lpDrawItemStruct获取控件的相关信息
    CRect rect = lpDrawItemStruct->rcItem;
    CDC *pDC = CDC::FromHandle( lpDrawItemStruct->hDC );
    int nSaveDC = pDC->SaveDC();
    UINT state = lpDrawItemStruct->itemState;
    CPen* hOldPen;
    CBrush bbb;
    bbb.CreateSolidBrush( RGB( 236, 233, 216 ) ); CBrush *pold = pDC->SelectObject( &bbb );
    pDC->Rectangle( &rect );
    pDC->SelectObject( pold ); if (state & ODS_SELECTED )
    {
      

  3.   

    这段代码不能将GROUPBOX的四个角变圆。
    请高手指点!