首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

使用位图覆盖区域的有关问题

2012-03-18 
使用位图覆盖区域的问题我在单文档的菜单下创建了一个dialogBar,想用位图覆盖菜单和dialogBar的区域,出现

使用位图覆盖区域的问题
我在单文档的菜单下创建了一个dialogBar,想用位图覆盖菜单和dialogBar的区域,
出现个问题,就是位图无法正常显示,位图给dialogBar和菜单栏遮住了,怎么解决?
关键代码如下:
static   BOOL   DrawStretch(HDC   hDC,RECT*   rcBounds,HBITMAP   hbmp)
//把位图hbmp覆盖区域rcBounds
{
ASSERT(hDC!=NULL&&rcBounds!=NULL);

HDC               hMemDC=CreateCompatibleDC(hDC);
if(hMemDC)
{
HBITMAP       holdbitmap=(HBITMAP)SelectObject(hMemDC,hbmp);

BITMAP         bm;
GetObject(hbmp,sizeof(BITMAP),&bm);

BOOL   bSuc;
bSuc=StretchBlt(hDC,rcBounds-> left,rcBounds-> top,rcBounds-> right-rcBounds-> left,
rcBounds-> bottom-rcBounds-> top,hMemDC,0,0,bm.bmWidth,
bm.bmHeight,SRCCOPY);

SelectObject(hMemDC,holdbitmap);
DeleteDC(hMemDC);    
hMemDC=NULL;
return   bSuc;
}
return   FALSE;
}

重写mainFraim的OnPaint()
void   CShapeFrame::OnPaint()
{
CPaintDC   dc(this);
CRect   rcWindowRect;
GetWindowRect(&rcWindowRect);

BITMAP         bm;
GetObject(m_bmpNormal,sizeof(BITMAP),&bm);
rcWindowRect.right=rcWindowRect.left+bm.bmWidth;
rcWindowRect.bottom=rcWindowRect.top+bm.bmHeight;

//位图填充
if(!DrawStretch(dc.GetSafeHdc(),&rcWindowRect,(HBITMAP)m_bmpNormal))
{
AfxMessageBox( "error ");
return;
}
}

急,请各位指点迷津



[解决办法]
BOOL OnEraseBkgnd(CDC* pDC)
{
return true;
}

热点排行