Я успешно записал код для пользовательского рисования выбранного элемента в этапе рисования CDDS_ITEMPREPAINT в обработчике OnCustomDraw () и возвращаю CDRF_SKIPDEFAULT после рисования выбранного элемента:
int subitemCount = GetHeaderCtrl().GetItemCount();
CRect itemRect;
for (int i = 0; i < subitemCount; i++) // Draw individual subitem
{
if (i == 0)
{
// My own function
// calculate correct rect for first(index=0) subitem
CalculateItemRect(nIndex, itemRect);
}
else if (!GetSubItemRect(nIndex, i, LVIR_BOUNDS, itemRect))
{
return;
}
// Adjust text rect to avoid overlapping with vertical grid line
itemRect.left += 6;
dc.DrawText(GetItemText(nIndex, i), itemRect, DT_LEFT | DT_NOCLIP | DT_VCENTER | DT_SINGLELINE | DT_END_ELLIPSIS);
}
Этот код пока работает хорошо. Любые предложения по улучшению приветствуются.