mfcclistctrl

Using a CListCtrl, how can I make selection color entire row?


I currently have NM_CUSTOMDRAW message calling a function to color the rows of a listctrl in report mode. I can detect when a row is selected and color it myself, but this method doesn't get called for the cell that is selected, so I can't color that cell. So my question is 1) is there a way to have windows call my custom draw method for every cell whether it is selected or not? 2) If not what is the easiest way to make a selection span entire row. Thanks, CP


Solution

  • I found the answer, and Microsoft made it easier than I guess it used to be.

    m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT);
    

    See:

    https://learn.microsoft.com/en-gb/windows/win32/controls/extended-list-view-styles?redirectedfrom=MSDN

    LVS_EX_FULLROWSELECT

    When an item is selected, the item and all its subitems are highlighted. This style is available only in conjunction with the LVS_REPORT style.