次のコードを使用して、CTreeCtrl のツリー項目のフォントを変更します。
void CTreeCtrlEx::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMTVCUSTOMDRAW pNMCD = reinterpret_cast<LPNMTVCUSTOMDRAW>(pNMHDR);
*pResult = 0;
switch(pNMCD->nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
*pResult = CDRF_NOTIFYITEMDRAW;
return;
case CDDS_ITEMPREPAINT:
{
CFont * pco_font = GetSomeFont();
::SelectObject(pNMCD->nmcd.hdc, pco_font->GetSafeHandle());
*pResult = CDRF_NEWFONT;
}
return;
}
}
ただし、テキストの末尾がアイテム内で切り取られて
おり、新しいフォントでテキストの長さに調整されていないようです。
対処法は何でしょう?