Commit 76b6c8f5 authored by Francois Gouget's avatar Francois Gouget Committed by Alexandre Julliard

comctl32: Send a WM_CTLCOLORSTATIC message and erase the background while painting.

parent e6368a04
......@@ -832,6 +832,7 @@ static LRESULT SYSLINK_Draw (const SYSLINK_INFO *infoPtr, HDC hdc)
PDOC_ITEM Current;
HFONT hOldFont;
COLORREF OldTextColor, OldBkColor;
HBRUSH hBrush;
hOldFont = SelectObject(hdc, infoPtr->Font);
OldTextColor = SetTextColor(hdc, infoPtr->TextColor);
......@@ -843,6 +844,13 @@ static LRESULT SYSLINK_Draw (const SYSLINK_INFO *infoPtr, HDC hdc)
if(rc.right < 0 || rc.bottom < 0) return 0;
hBrush = (HBRUSH)SendMessageW(infoPtr->Notify, WM_CTLCOLORSTATIC,
(WPARAM)hdc, (LPARAM)infoPtr->Self);
if (!hBrush)
hBrush = CreateSolidBrush(infoPtr->BackColor);
FillRect(hdc, &rc, hBrush);
DeleteObject(hBrush);
for(Current = infoPtr->Items; Current != NULL; Current = Current->Next)
{
int n;
......@@ -911,23 +919,6 @@ static LRESULT SYSLINK_Paint (const SYSLINK_INFO *infoPtr, HDC hdcParam)
}
/***********************************************************************
* SYSLINK_EraseBkgnd
* Handles the WM_ERASEBKGND message.
*/
static LRESULT SYSLINK_EraseBkgnd (const SYSLINK_INFO *infoPtr, HDC hdc)
{
HBRUSH hbr;
RECT r;
GetClientRect(infoPtr->Self, &r);
hbr = CreateSolidBrush(infoPtr->BackColor);
FillRect(hdc, &r, hbr);
DeleteObject(hbr);
return 1;
}
/***********************************************************************
* SYSLINK_SetFont
* Set new Font for the SysLink control.
*/
......@@ -1572,7 +1563,7 @@ static LRESULT WINAPI SysLinkWindowProc(HWND hwnd, UINT message,
return SYSLINK_Paint (infoPtr, (HDC)wParam);
case WM_ERASEBKGND:
return SYSLINK_EraseBkgnd(infoPtr, (HDC)wParam);
return 0;
case WM_SETCURSOR:
{
......@@ -1752,7 +1743,7 @@ static LRESULT WINAPI SysLinkWindowProc(HWND hwnd, UINT message,
infoPtr->HasFocus = FALSE;
infoPtr->MouseDownID = -1;
infoPtr->TextColor = comctl32_color.clrWindowText;
infoPtr->LinkColor = comctl32_color.clrHotTrackingColor;
infoPtr->LinkColor = comctl32_color.clrHighlight;
infoPtr->VisitedColor = comctl32_color.clrHighlight;
infoPtr->BackColor = infoPtr->Style & LWS_TRANSPARENT ?
comctl32_color.clrWindow : comctl32_color.clrBtnFace;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment