91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

?MFC中TransparentBlt函數怎么使用

小億
81
2023-11-02 14:05:30
欄目: 編程語言

TransparentBlt函數用于在設備上下文中繪制帶有透明效果的圖像。

函數原型:

BOOL TransparentBlt(
  HDC   hdcDest,
  int   xoriginDest,
  int   yoriginDest,
  int   wDest,
  int   hDest,
  HDC   hdcSrc,
  int   xoriginSrc,
  int   yoriginSrc,
  int   wSrc,
  int   hSrc,
  UINT  crTransparent
);

參數說明:

  • hdcDest:目標設備上下文的句柄。
  • xoriginDest:目標矩形區域的左上角的x坐標。
  • yoriginDest:目標矩形區域的左上角的y坐標。
  • wDest:目標矩形區域的寬度。
  • hDest:目標矩形區域的高度。
  • hdcSrc:源設備上下文的句柄。
  • xoriginSrc:源矩形區域的左上角的x坐標。
  • yoriginSrc:源矩形區域的左上角的y坐標。
  • wSrc:源矩形區域的寬度。
  • hSrc:源矩形區域的高度。
  • crTransparent:透明顏色值。與源圖像中顏色相同的像素將被視為透明。

使用示例:

CImage image;
image.Load(_T("path/to/image.png"));

CDC* pDC = GetDC();
CDC memDC;
memDC.CreateCompatibleDC(pDC);
CBitmap bmp;
bmp.CreateCompatibleBitmap(pDC, image.GetWidth(), image.GetHeight());
memDC.SelectObject(&bmp);
memDC.BitBlt(0, 0, image.GetWidth(), image.GetHeight(), pDC, 0, 0, SRCCOPY);
image.BitBlt(memDC.GetSafeHdc(), 0, 0, SRCCOPY);
TransparentBlt(pDC->GetSafeHdc(), x, y, width, height, memDC.GetSafeHdc(), 0, 0, image.GetWidth(), image.GetHeight(), RGB(255, 0, 255));

ReleaseDC(pDC);

以上示例中,首先加載圖像文件到CImage對象中,然后創建一個兼容的內存設備上下文和位圖對象,將位圖對象選入設備上下文,使用BitBlt函數將屏幕上的圖像復制到內存設備上下文中,然后使用BitBlt函數將圖像繪制到內存設備上下文中,最后使用TransparentBlt函數將內存設備上下文中的圖像繪制到屏幕上的目標設備上下文中,并指定透明顏色。

0
山东省| 北安市| 沙雅县| 隆化县| 苍山县| 石阡县| 澄迈县| 桂阳县| 通河县| 三台县| 太湖县| 安徽省| 青铜峡市| 湖南省| 康保县| 蓬安县| 峨边| 绥滨县| 安阳市| 巧家县| 镶黄旗| 陆丰市| 隆子县| 贺兰县| 元阳县| 怀来县| 喀什市| 宣威市| 咸丰县| 巢湖市| 繁峙县| 和田市| 巩义市| 太仆寺旗| 玉门市| 中方县| 和平区| 碌曲县| 石台县| 大厂| 巨野县|