用背景图片填充Edit控件...
只需要在Edit控件的父窗口处理WM_CTLCOLOREDIT消息, 如:
case WM_CTLCOLOREDIT:
{
SetBkMode((HDC)wParam, TRANSPARENT);
RECT rc;
GetClientRect((HWND)lParam, &rc);
BITMAP bi;
HBITMAP hBmpBg = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_BITMAP1));
HDC hdcMem = CreateCompatibleDC((HDC)wParam);
HBITMAP hBmpOld = (HBITMAP)SelectObject(hdcMem, hBmpBg);
GetObject(hBmpBg, sizeof(BITMAP), &bi);
StretchBlt((HDC)wParam, 0, 0, rc.right, rc.bottom, hdcMem, 0, 0, bi.bmWidth, bi.bmHeight, SRCCOPY);
SelectObject(hdcMem, hBmpBg);
DeleteDC(hdcMem);
DeleteObject(hBmpBg);
return (LRESULT)GetStockObject(NULL_BRUSH);
}
break;
case WM_CTLCOLOREDIT:
{
SetBkMode((HDC)wParam, TRANSPARENT);
RECT rc;
GetClientRect((HWND)lParam, &rc);
BITMAP bi;
HBITMAP hBmpBg = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_BITMAP1));
HDC hdcMem = CreateCompatibleDC((HDC)wParam);
HBITMAP hBmpOld = (HBITMAP)SelectObject(hdcMem, hBmpBg);
GetObject(hBmpBg, sizeof(BITMAP), &bi);
StretchBlt((HDC)wParam, 0, 0, rc.right, rc.bottom, hdcMem, 0, 0, bi.bmWidth, bi.bmHeight, SRCCOPY);
SelectObject(hdcMem, hBmpBg);
DeleteDC(hdcMem);
DeleteObject(hBmpBg);
return (LRESULT)GetStockObject(NULL_BRUSH);
}
break;
浙公网安备 33010602011771号