谢谢回复!
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.
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.
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值画上去就是半透明的效果