カスタムドローを使用することで任意行の背景色を変更することができます。
void CHogeTreeCtrl::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult) { // LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR); NMTVCUSTOMDRAW* pTvcd = reinterpret_cast<NMTVCUSTOMDRAW*>pNMHDR; //==== 描画ステージ判定 ====// switch(pTvcd->nmcd.dwDrawStage) { //== 描画サイクル開始 ==// case CDDS_PREPAINT: *pResult = CDRF_NOTIFYITEMDRAW; return; //== アイテム描画 ==// case CDDS_ITEMPREPAINT: //==== 選択判定 ====// if(pTvcd->nmcd.uItemState & CDIS_SELECTED) { //-==- 選択状態 -==-// if(::GetFocus() == m_hWnd) { //-==- フォーカスを持っている -==-// pTvcd->clrTextBk = BKCOLOR_SEL; } else { //-==- フォーカスを持っていない -==-// pTvcd->clrTextBk = BKCOLOR_SEL_LOSTFOCUS; } } else { //-==- 非選択状態 -==-// pTvcd->clrTextBk = BKCOLOR_NORMAL; } *pResult = CDRF_DODEFAULT; break; //== その他 ==// default: *pResult = CDRF_DODEFAULT; } }