我做了一个自绘菜单程序,其中有一段代码是这样的:
void CIconMenu::DrawTopMenu(CDC* m_pdc,CRect m_rect,BOOL m_selected )
{
if (m_selected)
    {
        m_pdc->SelectStockObject(BLACK_PEN);
        m_pdc->Rectangle(&m_rect);
        m_rect.DeflateRect(1,1);
        m_pdc->FillSolidRect(m_rect,RGB(150, 185, 255));
    }
    else
    {
        CRect rect;
        AfxGetMainWnd()->GetClientRect(rect);
        rect.top = m_rect.top;
        rect.bottom = m_rect.bottom;
        rect.left= 360;
        rect.right +=4;
        CBitmap m_bitmap;
        m_bitmap.LoadBitmap(IDB_ITEMBITMAP);
        BITMAP m_size;
        m_bitmap.GetBitmap(&m_size);
        CDC m_memdc;
        m_memdc.CreateCompatibleDC(m_pdc);
        CGdiObject* m_oldobject;
        m_oldobject = m_memdc.SelectObject(&m_bitmap);        //m_save = m_pdc->SaveDC();
        m_pdc->StretchBlt(rect.left,rect.top,rect.Width(),rect.Height()+2,&m_memdc,0,0,m_size.bmWidth,m_size.bmHeight,SRCCOPY);
        m_bitmap.DeleteObject();
            m_pdc->StretchBlt(m_rect.left,m_rect.top,m_rect.Width(),m_rect.Height()+2,&m_memdc,0,0,m_size.bmWidth,m_size.bmHeight,SRCCOPY);
        m_bitmap.DeleteObject();
    
        //m_pdc->SelectStockObject(BLACK_PEN);
        //m_pdc->FillSolidRect(m_rect,RGB(100, 185, 255));
    }}
但是做出的效果是,背景图片下面还有一条灰色的边框,不知是怎么回事?具体问题请看http://www.yuanshengkj.com/bbs/topic.asp?topic_id=1843&forum_id=39