MFCとVisualStudio2010C++を使用します。CListCtrlの特定の個々の行を目立たせる方法が必要です(ただし、組み込みの選択機能を使用して行を強調表示したくありません)。行の背景の色、フォントの太さ、または画像(パフォーマンスが高い場合)の場合もあります。
理想的には、ストックリストコントロールを使用してこれを行う方法を知りたいです。ただし、これが不可能な場合は、サードパーティのコードを使用する方法を教えてください。
アップデート
これが私が使用することになったコードです:
void MyList::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult)
{
NMLVCUSTOMDRAW* cd = reinterpret_cast<NMLVCUSTOMDRAW*>(pNMHDR);
*pResult = CDRF_DODEFAULT;
switch( cd->nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
*pResult = CDRF_NOTIFYITEMDRAW;
break;
case CDDS_ITEMPREPAINT:
{
int rowNumber = cd->nmcd.dwItemSpec;
bool highlightRow = (bool)GetItemData(rowNumber);
if (highlightRow)
{
COLORREF backgroundColor;
backgroundColor = RGB(255, 0, 0);
cd->clrTextBk = backgroundColor;
}
}
break;
default:
break;
}
}
私の場合、ItemDataを何にも使用していなかったので、行を強調表示する必要があるかどうかを示すために、ブール値を使用して他の場所でSetItemDataを呼び出しました。