我从 CListCtrl 派生了一个名为 CListCtrlCustomDraw 的类,并使用 NM_CUSTOMDRAW 处理程序来绘制列表。
问题是我选择的项目和未选择的项目有不同的字体,它们是列表控件的成员变量,但是当我使用
m_list.SetColumnWidth(iCol, LVSCW_AUTOSIZE);
int nTextWidth = m_list.GetColumnWidth(iCol);
m_list.SetColumnWidth(iCol, LVSCW_AUTOSIZE_USEHEADER);
int nColTitleWidth = m_list.GetColumnWidth(iCol);
m_list.SetColumnWidth(iCol,max(nTextWidth, nColTitleWidth));
计算列宽时,列表使用未选中项的字体,该字体没有
选中项的字体(粗体)那么宽,因此即使内容相同,也会有一些内容无法显示在
选中项中。
我可以设置使用哪种字体来计算列宽吗?
我尝试在上述代码之前设置字体,但没有效果。
任何建议将不胜感激。