vc 将位图多余部分变为透明
2013-03-01 13:05
309 查看
||initinstance||
hdc=GetDC(hWnd);
mdc=CreateCompatibleDC(hdc);//创建一个内存dc
bg=(HBITMAP)LoadImage(NULL,"bg.bmp",IMAGE_BITMAP,600,450,LR_LOADFROMFILE);//加载背景图
dra=(HBITMAP)LoadImage(NULL,"dra.bmp",IMAGE_BITMAP,170,99,LR_LOADFROMFILE);//加载要去掉多余部分的位图
MyPaint(hdc);
ReleaseDC(hWnd,hdc);
||MyPaint||
SelectObject(mdc ,bg);
BitBlt(hdc,0,0,600,450,mdc,0,0,SRCCOPY);//贴上背景图
SelectObject(mdc,dra);
BitBlt(hdc,280,320,85,99,mdc,85,0,SRCAND);//用背景图与前景图做和运算
BitBlt(hdc,280,320,85,99,mdc,0,0,SRCPAINT);//用背景图与屏蔽图做或运算
要点讲解,加载背景图,前景图,屏蔽图,先用屏蔽图与背景图做与运算,在用前景图与屏蔽图做或运算。
hdc=GetDC(hWnd);
mdc=CreateCompatibleDC(hdc);//创建一个内存dc
bg=(HBITMAP)LoadImage(NULL,"bg.bmp",IMAGE_BITMAP,600,450,LR_LOADFROMFILE);//加载背景图
dra=(HBITMAP)LoadImage(NULL,"dra.bmp",IMAGE_BITMAP,170,99,LR_LOADFROMFILE);//加载要去掉多余部分的位图
MyPaint(hdc);
ReleaseDC(hWnd,hdc);
||MyPaint||
SelectObject(mdc ,bg);
BitBlt(hdc,0,0,600,450,mdc,0,0,SRCCOPY);//贴上背景图
SelectObject(mdc,dra);
BitBlt(hdc,280,320,85,99,mdc,85,0,SRCAND);//用背景图与前景图做和运算
BitBlt(hdc,280,320,85,99,mdc,0,0,SRCPAINT);//用背景图与屏蔽图做或运算
要点讲解,加载背景图,前景图,屏蔽图,先用屏蔽图与背景图做与运算,在用前景图与屏蔽图做或运算。
相关文章推荐
- 为VC++应用程序对话框添加透明位图
- VC中使用GDI函数实现位图的透明
- VC++实现位图显示透明效果--实现原理
- VC对话框如何添加WM_ERASEBKGND消息(OnEraseBkgnd函数)及对话框使用位图背景并透明
- VC++实现位图显示透明效果
- VC透明位图的绘制
- VC——位图的透明显示
- VC中使用GDI函数实现位图的透明
- VC++实现位图显示透明效果
- 如何让VC的窗体变为透明
- VC对话框如何添加WM_ERASEBKGND消息(OnEraseBkgnd函数)及对话框使用位图背景并透明
- VC 位图背景透明显示
- VC++ TransparentBlt函数图片部分颜色变透明色
- VC对话框使用OnEraseBkgnd函数位图背景并透明
- 如何在VC中显示透明背景位图
- VC透明位图的实现原理
- 如何让VC的窗体变为透明
- VC++实现位图显示透明效果
- 为VC++应用程序对话框添加透明位图
- VC++应用程序对话框添加透明位图