當我在下面的代碼使用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