Tuesday, April 12, 2005, 10:57:02 PM, you wrote:
On Tue, Apr 12, 2005 at 04:13:32PM -0600, Vitaliy Margolen wrote:
Well, yes and no. This is custom draw callback/notify. It shouldn't change control's parameters, such as color. At least on a permanent basis. This is what set color messages for.
Agreed. But judging by what listview is doing, we do need to use them when we are drawing the item (or whatever). But I agree, we must not change those parameters permanently.
Ok, I need help here. I spend half a day trying to fix this. I moved send notify after color and font setup in TREEVIEW_DrawItem. It's getting closer to native. But! No matter what I try, I can't set background color from within Delphi App on DrawItemNotify. Which does work on windows.
Am I missing something? I changed text mode to opaque, so it should use current brush color for background. But when I printing GetDCBrushColor it stays the same! Could we have a problem somewhere in GDI?
Also I can't quite understand why TVM_GETITEM for iImage returns something like 0x4079D5D0 while traces show 0, 1 or 3 dependant on open/closed/has children.
I guess this needs more debugging :)
I haven't debugged this one yet. I have a filling that it's callback messing things up. It could be that Delphi does not respond correctly to updete disp info notifies when they sent not from drawing code. Not a problem right now. It's doing the same on native.