CListCtrl 设置字体样式为粗体

Yog*_*esh 5 mfc clistctrl visual-studio visual-c++

我想将 CListCtrl 控件的任何单元格的字体更改为粗体。任何人都可以告诉如何为 CList Ctrl 执行此操作吗?

我已经为 CTreeCtrl 完成了此操作,如下所示

pTC->SetItemState(hItemCur, TVIS_BOLD, TVIS_BOLD);
Run Code Online (Sandbox Code Playgroud)

我们有类似的 CListCtrl 吗?

提前致谢。

Mik*_*Mik 3

如果您可以使用CMFCListCtrl(VS2008 SP1 及更高版本),则可以从中派生一个类并重写OnGetCellFont。从那里您返回粗体字体(您可以创建自己的字体或返回 AFX_GLOBAL_DATA::fontBold):

HFONT CMyListCtrl::OnGetCellFont( int nRow, int nColumn, DWORD dwData /*= 0*/ )
{
    if (UseBoldFont(/* params */))
    {
        return GetGlobalData()->fontBold;
    }
    return NULL;
}
Run Code Online (Sandbox Code Playgroud)

如果您必须坚持使用普通的旧式 CListCtrl,最简单的方法是使用 Custom Draw,您可以根据自己的需要调整绘图过程。不要将它与“业主抽奖”混淆,后者必须由您自己完成所有绘图。

这是一篇文章,解释了将 Custom Draw 与 CListCtrl 结合使用的基础知识。