当我在下面的代码使用SetBkMode(hdc, TRANSPARENT);
,我当我调整主窗口下面的效果(因此当孩子收到WM_PAINT消息):SetBkMode(HDC,透明)不起作用
问题是:当我调整主窗口的大小时,“Find:”的旧区域会被擦除,我猜。但它仍然存在。
如果我不使用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;
.............
}
问题是什么?你画“查找”并得到象形文字? – Maximus 2012-08-05 08:14:18
不,我上传了一张新图片,使问题变得清晰。 – user565739 2012-08-05 08:16:27
看起来像这是工具栏部分。以为,它不需要调整大小? – Maximus 2012-08-05 08:26:10