Windows API学习-修改控件背景文字颜色(3)


透明背景

实现透明背景需要设置文本背景颜色透明,同时返回没有颜色的画刷。

1) SetBkMode 函数可以用来设置文本的背景模式,它的原型为:

int SetBkMode(
    HDC hdc,  //设备环境句柄
    int iBkMode  //背景模式
);

iBkMode 有下面两种取值:

取值	说明
OPAQUE	使用当前背景颜色来填充背景。
TRANSPARENT	背景透明。

2) GetStockObject (NULL_BRUSH); 语句可以返回没有颜色的画刷。

示例代码:

case WM_CTLCOLORSTATIC:
    hdcStatic = (HDC)wParam;
    SetTextColor( hdcStatic, RGB(0x41, 0x96, 0x4F) );  //翠绿色
    SetBkMode(hdcStatic, TRANSPARENT);  //透明背景
    return (INT_PTR)GetStockObject(NULL_BRUSH);  //无颜色画刷

运行效果:
2.png