我做了一个自绘菜单程序,其中有一段代码是这样的:
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
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
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货