Я пытаюсь разместить кнопку рисования владельца на заднем плане. У меня нет проблем с этим, когда фон имеет сплошной цвет, но если фон является изображением, я не могу получить правильный HDC (дескриптор к контексту устройства) для Bitblt () области, которую покрывает кнопка.
HDC, который передается как часть DRAWITEMSTRUCT, дает мне серую область кнопки по умолчанию. Если я пытаюсь получить родителя HWND, а затем контекст устройства этого, т.е.
pdc = GetDC(GetParent(hWnd));
тогда фон, который получает BitBlt'd, является фоном последнего нарисованного окна.
Надеюсь, этот вопрос имеет смысл.
это код, который у меня есть:
pdis = (LPDRAWITEMSTRUCT)(lParam);
hdc = pdis->hDC;
button = pdis->CtlID - IDC_BUTOFFSET;
//pdc = GetDC((hWnd));
pdc = GetDC(GetParent(hWnd));
hbm = CreateCompatibleBitmap(pdc, Buttons_[button]->bc.Size.cx, Buttons_[button]->bc.Size.cy);
SelectObject(hdc, hbm);
BitBlt(hdc, 0, 0, Buttons_[button]->bc.Size.cx, Buttons_[button]->bc.Size.cy,
pdc, Buttons_[button]->bc.Position.x, Buttons_[button]->bc.Position.y, SRCCOPY);
TIA
С наилучшими пожеланиями
Завершает