MFC 图片部分透明
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);?//更新區域
?
總結
以上是生活随笔為你收集整理的MFC 图片部分透明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 红黑树与隔代遗传
- 下一篇: wxWidgets利用透明图片自定义工具