1. 在头文件中,定义控制变量:
CDC m_dcMem; //内存
CDC m_dcBuf; //缓冲
CBitmap m_bmpBg; //背景图片
CBitmapm_bmp; //图片
BITMAP m_infoBmpBg;
BITMAP m_infoBmp;
2.在初始化函数OnInitDialog()中:
m_bmpBg.LoadBitmap(IDB_GAME_BG); //加载图片
m_bmp.LoadBitmap(IDB_BMP);
m_bmpBg.GetBitmap(&m_infoBmpBg);//绑定变量
m_bmp.GetBitmap(&m_infoBmp);
CDC *pDC = GetDC();
m_dcMem.CreateCompatibleDC(pDC); //获取句柄
m_dcMem.SelectObject(&m_bmpBg); //选择背景图案载入内存
m_dcBuf.CreateCompatibleDC(pDC);
RECT rc;
GetWindowRect(&rc);
int cyCaption =GetSystemMetrics(SM_CYCAPTION);
MoveWindow(rc.left,rc.top,m_infoBmpBg.bmWidth,m_infoBmpBg.bmHeight+cyCaption);
ReleaseDC(pDC);
3.在函数OnPaint()中:
dc.BitBlt(目标区域起点x坐标,目标区域起点y坐标,宽度,高度,&m_dcMem,图片起点x坐标,图片起点y坐标,SRCCOPY); //SRCCOPY表示拉伸
4.在实现的代码中,选择要显示的图片:
m_dcBuf.SelectObject(&m_bmp);
TransparentBlt(m_dcMem,目标区域起点x坐标,目标区域起点y坐标,宽度,高度,m_dcBuf,图片起点x坐标,图片起点y坐标,宽度,高度,RGB(48,76,112)); //调用透明函数,RGB(48,76,112)为要被设置为透明的颜色
CRectrc(目标区域起点x坐标,目标区域起点y坐标,目标区域终点x坐标,目标区域终点y坐标,);
InvalidateRect(&rc); //更新区域