Подскажите по кнопкам и alphablend
Хочу сделать полупрозрачные кнопки на диалоге.
Создал в диалоге BUTTON с OWNERDRAW,
CONTROL "Button1", 555, "button", BS_OWNERDRAW | BS_CENTER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 208, 96, 50, 28
по WM_DRAWITEM делаю
static LRESULT wmDrawItem(HWND hwnd, UINT uMessage, WPARAM wparam, LPARAM lparam) {
DRAWITEMSTRUCT *lpdis = (LPDRAWITEMSTRUCT) lparam;
char tmp[222];
int i, k, off;
HDC hdcMem;
BLENDFUNCTION blend;
if(lpdis->itemID!=555) return FALSE;
blend.BlendOp = 0;//AC_SRC_OVER;
blend.BlendFlags = 0;
blend.AlphaFormat = 0;
blend.SourceConstantAlpha = 18;
hdcMem = CreateCompatibleDC(lpdis->hDC);
SelectObject(hdcMem, btm_toolbar);
AlphaBlend(lpdis->hDC,
lpdis->rcItem.left,
lpdis->rcItem.top,
lpdis->rcItem.right — lpdis->rcItem.left,
lpdis->rcItem.bottom — lpdis->rcItem.top,
hdcMem,
30*((lpdis->itemState&ODS_SELECTED)>0), 0,
30,
30,
blend);
DeleteDC(hdcMem);
}
Получаю с каждым нажатием — все ярче и ярче, пока фон вообще не убирается.
Как сделать правильно?
Пока на собственное сообщение не было ответов, его можно удалить.