目前共有3篇帖子。 字體大小:較小 - 100% (默認)▼  內容轉換:港澳繁體▼
 
點擊 回復
567 2
【用法】AlphaBlend半透明函數的用法
一派掌門 二十級
1樓 發表于:2016-7-7 23:12

BLENDFUNCTION bdf;
ZeroMemory(&bdf, sizeof(bdf));
bdf.SourceConstantAlpha = 150; // 指定不透明度(0為完全透明, 255為完全不透明)
SelectObject(hdcMem, hbmp); // 選入要複製的位圖
AlphaBlend(hdc, 50, 50, bmp.bmWidth / 2, bmp.bmHeight / 2, hdcMem, 0, 0, bmp.bmWidth, bmp.bmHeight, bdf);


運行效果:

一派掌門 二十級
2樓 發表于:2016-7-7 23:17

各參數的解釋:
AlphaBlend(目標設備DC, 顯示位置x坐標, 顯示位置y坐標, 顯示寬度, 顯示高度, 含有圖像的DC, 開始截取位置x坐標, 開始截取位置y坐標, 截取寬度, 截取高度, 半透明屬性);

合理調整顯示寬度和高度可以縮放圖像,例如bmp.bmWidth / 2, bmp.bmHeight / 2就是縮小為原尺寸的50%。

函數執行時先進行原圖像剪切,未剪切的部分不會顯示出來。

 
一派掌門 二十級
3樓 發表于:2016-7-7 23:18
如果bdf.SourceConstantAlpha為255的話,此函數就相當於StretchBlt。
 

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
(快捷鍵:Ctrl+Enter)
 

本帖信息

點擊數:567 回複數:2
評論數: ?
作者:巨大八爪鱼
最後回復:巨大八爪鱼
最後回復時間:2016-7-7 23:18
 
©2010-2025 Purasbar Ver2.0
除非另有聲明,本站採用共享創意姓名標示-相同方式分享 3.0 Unported許可協議進行許可。