Drawing on top of a listbox
Posted on 1997-02-22
I have created a custom class derived from CListCtrl. I want to have a standard entry field (CEdit) on top of one of the rows in the ListCtrl. I will be hiding/showing it from time to time. Sort of mimic'ing the cool in-place editing feature of the directory listbox for MSVC's options box.
I have been able to draw and show the edit field just fine, however if the CListCtrl needs to be repainted (let say a window covered it up for a second), the CEdit field gets painted first and then the CListCtrl paints over it. All I see is a blinking caret when the window is done repainting. It seems this is the order in which MFC paints the controls.
Here is what I have tried:
1) I have flagged the CListCtrl as transparent. Funny thing, the on-line help says transparent windows will get called last, huh? That doesn't make sense.
2) OnPaint message for custom CListCtrl. -- Doesn't work. Everytime I update the window (i.e. draw something on top of it) it loops endlessly (like it wants to repaint it again and again because of my painting on top).
Is what I am doing possible? I really don't want to draw the listbox and everything relating to it myself, I just want to paint something on top and use the listctrl as a normal listctrl.
Is this possible?