[2/3] comctl32: Never draw item text with OPAQUE.
Felix Nawothnig
flexo at holycrap.org
Fri Mar 16 11:58:27 CDT 2007
Dimi Paun wrote:
> But this ends up creating and deleting the brush for each of the cells
Well - yes. But other controls do this too (statusbar for example) and
considering all the stuff we do during refresh this is hardly a
bottleneck. And even if it is we should optimize this codepath in gdi32
instead (by caching solid brushs for example).
> we draw... I'm not sure I understand why using OPAQUE here doesn't work.
Problem is that DrawText() for the subitems will also use the
background color - which is wrong. To fix this while still using OPAQUE
we'd need to do something like:
SetBkMode(OPAQUE);
TextOutW(...);
SetBkMode(TRANSPARENT);
But abusing TextOutW() like that just seems wrong to me.
Using DrawText() to draw the background won't work either due to
LVS_EX_FULLROWSELECT (well, I guess we *could* do it by DrawText()ing
the first item over the full row and the subitems on top of it but I'd
prefer to _simplify_ the code, not add more hacks).
Felix
More information about the wine-devel
mailing list