两种贴图技术的比较

 081230

一: 利用两个兼容HDC,同时贴多张图
不用做插入图片,修改ID等工作,动态链接,必需在目录下面有图片资源。
HBITMAP bitmap ;
HBITMAP   first_bit ;
HDC   ui_mdc;
HDC   first_mdc;
HDC   dc=::GetDC(NULL);
first_mdc=CreateCompatibleDC(dc);
ui_mdc=CreateCompatibleDC(dc);
first_bit=::CreateCompatibleBitmap(dc,1024,768);
::SelectObject(first_mdc,first_bit);
    bitmap=(HBITMAP)::LoadImage(NULL,"BMP/03.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
::SelectObject(ui_mdc,bitmap);
::BitBlt(first_mdc,0,0,800,590,ui_mdc,0,0,SRCCOPY);
::BitBlt(dc,206,40,800,590,first_mdc,0,0,SRCCOPY);
bitmap=(HBITMAP)::LoadImage(NULL,"BMP/01.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
::SelectObject(ui_mdc,bitmap);
::BitBlt(first_mdc,0,0,119,64,ui_mdc,0,0,SRCCOPY);
::BitBlt(dc,850,150,119,64,first_mdc,0,0,SRCCOPY);
bitmap=(HBITMAP)::LoadImage(NULL,"BMP/02.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
::SelectObject(ui_mdc,bitmap);
::BitBlt(first_mdc,0,0,115,63,ui_mdc,0,0,SRCCOPY);
::BitBlt(dc,850,250,115,63,first_mdc,0,0,SRCCOPY);
    bitmap=(HBITMAP)::LoadImage(NULL,"BMP/02.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
::SelectObject(ui_mdc,bitmap);
::BitBlt(first_mdc,0,0,115,63,ui_mdc,0,0,SRCCOPY);
::BitBlt(dc,850,250,115,63,first_mdc,0,0,SRCCOPY);

::ReleaseDC(NULL,ui_mdc);
::ReleaseDC(NULL,first_mdc);
::ReleaseDC(NULL,dc);

二:一张张地贴图
需要插入图片,修改ID,图片资源固化在程序中。可以不用图片资源
CDC Chessboard;
CDC Begin;
CDC End;
CDC Mask;

CBitmap m_chessboard;
CBitmap m_begin;
CBitmap m_end;
CBitmap m_mask;

m_chessboard.LoadBitmap(chessboard); //用CBitmap类中的LoadBitmap函数来加resource中的位图chessboard
m_begin.LoadBitmap(begin);
m_end.LoadBitmap(end);
m_mask.LoadBitmap(mask);

Chessboard.CreateCompatibleDC(pDC);
Chessboard.SelectObject(m_chessboard);
Begin.CreateCompatibleDC(pDC);
Begin.SelectObject(m_begin);
End.CreateCompatibleDC(pDC);
End.SelectObject(m_end);
Mask.CreateCompatibleDC(pDC);
Mask.SelectObject(m_mask);

pdc->BitBlt(0,0,800,600,&Chessboard,0,0,SRCCOPY);
pdc->BitBlt(590,145,119,64,&Begin,0,0,SRCCOPY);
pdc->BitBlt(590,275,115,63,&End,0,0,SRCCOPY);
pdc->BitBlt(520,380,260,112,&Score,0,0,SRCCOPY);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值