当我SetBkMode(hdc, TRANSPARENT);
在下面的代码中使用时,当我调整主窗口的大小时(因此当孩子收到 WM_PAINT 消息时),我得到了以下效果:
问题是:当我调整主窗口的大小时,“查找:”的旧区域应该被删除,我猜。但它仍然存在。
如果我不使用SetBkMode(hdc, TRANSPARENT);
,我没有这个问题。看起来像:
,即它有白色背景。此外,如果我使用SetBkMode(hdc, TRANSPARENT);
,在我调整主窗口大小之前,它看起来与上面相同。所以我不认为SetBkMode(hdc, TRANSPARENT);
在这里工作。
是hwnd
一个有风格的静态孩子SS_BITMAP
。
你知道为什么会出现这个问题吗?
switch (message) {
case WM_PAINT:
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);
SelectObject(hdc, gDefaultGuiFont);
SetBkMode(hdc, TRANSPARENT);
RECT rc;
GetClientRect(hwnd, &rc);
DrawText(hdc, _TR("Find:"), -1, &rc, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
EndPaint(hwnd, &ps);
return 0;
.............
}