T
gemacht... aber funktioniert trotzdem nicht...
LRESULT CALLBACK CtrlProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
static RECT rect = {0, 0, 0, 0};
static PAINTSTRUCT ps;
static HDC hDC;
static HBRUSH hBr = CreateSolidBrush(RGB(255, 155, 0));
switch(uMsg)
{
case WM_CREATE:
GetClientRect(hWnd, &rect);
hDC = GetDC(hWnd);
TRACKMOUSEEVENT track;
track.cbSize = sizeof(track);
track.hwndTrack = hWnd;
track.dwFlags = TME_HOVER | TME_LEAVE;
track.dwHoverTime = 50;
_TrackMouseEvent(&track);
return 0;
case WM_PAINT:
{
SelectObject(hDC, hBr);
RoundRect(hDC, rect.left, rect.top, rect.right, rect.bottom, 10, 10);
DeleteObject(hBr);
ValidateRect(hWnd, NULL);
return 0;
}
case WM_MOUSEHOVER:
{
hBr = CreateSolidBrush(RGB(0, 55, 200));
InvalidateRect(hWnd, NULL, TRUE);
return 0;
}
case WM_MOUSELEAVE:
{
hBr = CreateSolidBrush(RGB(255, 155, 0));
InvalidateRect(hWnd, NULL, TRUE);
return 0;
}
case WM_SIZE:
rect.right = LOWORD (lParam);
rect.bottom = HIWORD (lParam);
return 0;
case WM_DESTROY:
ReleaseDC(hWnd, hDC);
return 0;
default:
break;
}
return(DefWindowProc(hWnd, uMsg, wParam, lParam));
}