Listview R5
Dimitrie O. Paun
dpaun at rogers.com
Wed Oct 16 07:56:10 CDT 2002
ChangeLog
Remember the global colors in custom draw mode.
--- dlls/comctl32/listview.c.R4 Wed Oct 16 08:45:38 2002
+++ dlls/comctl32/listview.c Wed Oct 16 08:53:38 2002
@@ -3471,7 +3471,7 @@
static void LISTVIEW_Refresh(LISTVIEW_INFO *infoPtr, HDC hdc)
{
UINT uView = infoPtr->dwStyle & LVS_TYPEMASK;
- COLORREF oldTextColor;
+ COLORREF oldTextColor, oldClrTextBk, oldClrText;
NMLVCUSTOMDRAW nmlvcd;
HFONT hOldFont;
DWORD cdmode;
@@ -3487,12 +3487,19 @@
oldBkMode = GetBkMode(hdc);
infoPtr->clrTextBkDefault = GetBkColor(hdc);
oldTextColor = GetTextColor(hdc);
+
+ oldClrTextBk = infoPtr->clrTextBk;
+ oldClrText = infoPtr->clrText;
GetClientRect(infoPtr->hwndSelf, &rcClient);
customdraw_fill(&nmlvcd, infoPtr, hdc, &rcClient, NULL);
cdmode = notify_customdraw(infoPtr, CDDS_PREPAINT, &nmlvcd);
if (cdmode & CDRF_SKIPDEFAULT) goto enddraw;
+ /* Use these colors to draw the items */
+ infoPtr->clrTextBk = nmlvcd.clrTextBk;
+ infoPtr->clrText = nmlvcd.clrText;
+
/* nothing to draw */
if(infoPtr->nItemCount == 0) goto enddraw;
@@ -3514,7 +3521,9 @@
if (cdmode & CDRF_NOTIFYPOSTPAINT)
notify_customdraw(infoPtr, CDDS_POSTPAINT, &nmlvcd);
- /* unselect objects */
+ infoPtr->clrTextBk = oldClrTextBk;
+ infoPtr->clrText = oldClrText;
+
SelectObject(hdc, hOldFont);
SetBkMode(hdc, oldBkMode);
SetBkColor(hdc, infoPtr->clrTextBkDefault);
More information about the wine-patches
mailing list