请问用CDC类怎样画出填充色是半透明的矩形?有颜色,但是可以看到图形下面的图形。

时间:2021-04-05 06:17:39
请问用CDC类怎样画出填充色是半透明的矩形?有颜色,但是可以看到图形下面的图形和背景。
谢谢回复!

2 个解决方案

#1


LOGBRUSH logbr;
memset(&logbr , 0 , sizeof(LOGBRUSH));
logbr.lbColor = RGB(255,0,0);
logbr.lbStyle = BS_NULL;
HBRUSH hBrush = CreateBrushIndirect(&logbr);
HBRUSH oldbr = (HBRUSH)SelectObject(dcMem , hBrush);
RECT rt = {0,0,128,128};
FillRect(dcMem , &rt , hBrush);

BS_HOLLOW          Hollow brush. 
BS_NULL            Same as BS_HOLLOW. 

#2


首先得到你要画的矩形区域的各点颜色RGB值,之后和你矩形的颜色RGB值相加再除二,把得到的RGB值画上去就是半透明的效果

#1


LOGBRUSH logbr;
memset(&logbr , 0 , sizeof(LOGBRUSH));
logbr.lbColor = RGB(255,0,0);
logbr.lbStyle = BS_NULL;
HBRUSH hBrush = CreateBrushIndirect(&logbr);
HBRUSH oldbr = (HBRUSH)SelectObject(dcMem , hBrush);
RECT rt = {0,0,128,128};
FillRect(dcMem , &rt , hBrush);

BS_HOLLOW          Hollow brush. 
BS_NULL            Same as BS_HOLLOW. 

#2


首先得到你要画的矩形区域的各点颜色RGB值,之后和你矩形的颜色RGB值相加再除二,把得到的RGB值画上去就是半透明的效果