我在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;
}
我该怎么做?
由于
答案 0 :(得分:1)
SetBkMode()
会影响文字呈现是否透明,这不是问题所在。
您将需要WM_PRINTCLIENT
直到父控件进入按钮DC,as I demonstrate here。 (请注意,我的代码仍会在复选框,分组框,标签等中调用SetBkMode()
透明文本;对于按钮,如果使用视觉样式则无关紧要。)