MFC 插入位图的问题
原先有一个位图背景,想要在上面再(x,y)处华商一个小的位图,但是原来的位图不消失,如何在ondraw里写代码?voidCSeuMarketView::OnDraw(CD...
原先有一个位图背景,想要在上面再(x,y)处华商一个小的位图,但是原来的位图不消失,如何在ondraw里写代码?
void CSeuMarketView::OnDraw(CDC* pDC)
{
CSeuMarketDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
CBitmap Bitmap;
Bitmap.LoadBitmap(IDB_huacheng);
CDC MemDC;
MemDC.CreateCompatibleDC(pDC);
CBitmap * OldBitmap = MemDC.SelectObject(&Bitmap);
BITMAP bm;
Bitmap.GetBitmap(&bm);
CBitmap Bitmap;
Bitmap.LoadBitmap(IDB_Button2);
CDC MemDC;
MemDC.CreateCompatibleDC(pDC);
CBitmap * OldBitmap = MemDC.SelectObject(&Bitmap);
BITMAP bm;
Bitmap.GetBitmap(&bm);
} 展开
void CSeuMarketView::OnDraw(CDC* pDC)
{
CSeuMarketDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
CBitmap Bitmap;
Bitmap.LoadBitmap(IDB_huacheng);
CDC MemDC;
MemDC.CreateCompatibleDC(pDC);
CBitmap * OldBitmap = MemDC.SelectObject(&Bitmap);
BITMAP bm;
Bitmap.GetBitmap(&bm);
CBitmap Bitmap;
Bitmap.LoadBitmap(IDB_Button2);
CDC MemDC;
MemDC.CreateCompatibleDC(pDC);
CBitmap * OldBitmap = MemDC.SelectObject(&Bitmap);
BITMAP bm;
Bitmap.GetBitmap(&bm);
} 展开
1个回答
展开全部
OnDraw里面,按照代码顺序,后画的在先画的上面覆盖。如果只是需要绘制顺序,那么注意代码顺序就可以了。
“原来的位图不消失” 这个提问有些模糊。如果需要透明,用AlphaBlend函数绘制,如果要指定透明色,用TransparentBlt绘制,如果要颜色运算,用BitBlt的最后一个参数指定(SRCCOPY那个改成其它)即可。
“原来的位图不消失” 这个提问有些模糊。如果需要透明,用AlphaBlend函数绘制,如果要指定透明色,用TransparentBlt绘制,如果要颜色运算,用BitBlt的最后一个参数指定(SRCCOPY那个改成其它)即可。
更多追问追答
追问
我是写了先绘制一个位图,再绘制另一个。但是显示的时候第一个位图没有显示出来,只显示了第二个。
追答
拿代码说话吧,如果第二个没有完全覆盖第一个,除非有别的问题,否则两个都应该显示。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询