C ++按钮透明背景

时间:2014-10-23 18:50:21

标签: c++ winapi button

我在C ++(Win32 API)中创建基本应用程序。我尝试使用CreateWindow()函数创建一个按钮,如下所示:

button1 = CreateWindow("button", TEXT("Click Me!"), WS_TABSTOP | WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 100, 200, 70, 25, hwnd, (HMENU)NULL, NULL, NULL);

问题是按钮周围有一个白色边框,如下所示: Link

我尝试使用此代码使其透明但不起作用。

case WM_CTLCOLORBTN:{
    HBRUSH hBrushbtn;
    hBrushbtn = (HBRUSH)GetStockObject(NULL_BRUSH);
    SetBkMode((HDC) wParam, TRANSPARENT);
    return ((LRESULT)hBrushbtn);
    break;
}

我该怎么做?

由于

1 个答案:

答案 0 :(得分:1)

SetBkMode()会影响文字呈现是否透明,这不是问题所在。

您将需要WM_PRINTCLIENT直到父控件进入按钮DC,as I demonstrate here。 (请注意,我的代码仍会在复选框,分组框,标签等中调用SetBkMode()透明文本;对于按钮,如果使用视觉样式则无关紧要。)