comctl32: Send a WM_CTLCOLORSTATIC message and erase the background while painting.
This commit is contained in:
parent
e6368a040c
commit
76b6c8f517
|
@ -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;
|
||||
|
@ -910,23 +918,6 @@ static LRESULT SYSLINK_Paint (const SYSLINK_INFO *infoPtr, HDC hdcParam)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* 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;
|
||||
|
|
Loading…
Reference in New Issue