MFC 中改变List Control控件字体的大小
LOGFONT logfont;//最好弄成类成员,全局变量,静态成员
CFont *pfont1 = m_List.GetFont();
pfont1->GetLogFont( &logfont );
logfont.lfHeight =logfont.lfHeight * 3; //这里可以修改字体的高比例
logfont.lfWidth = logfont.lfWidth * 3; //这里可以修改字体的宽比例
static CFont font1;
font1.CreateFontIndirect(&logfont);
m_List.SetFont(&font1);
font1.Detach();
把这一段放在OnInitDialog()就OK了
MFC 中清空List Control控件的文本方法
M_list为我的控件变量
以下两种方法: 仅能清空行数据,而列的标题是没办法清空的,所以得进一步清空列。(在此不做叙述)
方法一:
m_list.DeleteAllItems();
int ncount = m_list.GetHeaderCtrl()->GetItemCount(); //获取控件中的列表数量
for (size_t i = 0; i < ncount; ++i)
{
m_list.DeleteColumn(i);
}
//删除每一个列
是不是看起来很简单?但很遗憾,这这种方式在高版本VS中是有错误的(本人使用的是VS2019)。
高版本的MFC框架中,DeleteColumn()删除索引下的列后,会自动将往后的列项往前移
这就造成了循环结束后仍会剩余一个列没删除,这样当界面多次界面切换会,最后一个列项就会多出一个。所以得使用
while (m_list.DeleteColumn(0)); //删除第一项,删了之后后面的会前移
方法二:
m_list.DeleteAllItems(); // 全部清空