listctrl的列数已知的情况下,每列的宽度根据该列的数据宽度自动调整。
那你必须要先得到数据的宽度GetTextExtentExPoint()然后再利用该宽度来调整CListCtrl的列宽CListCtrl::SetColumnWidth()
m_list.InsertColumn(0, _T("1"), LVCFMT_CENTER, 60)m_list.InsertColumn(1, _T("2"), LVCFMT_CENTER, 60)
m_list.InsertColumn(2, _T("3"), LVCFMT_CENTER, 80)
m_list.InsertColumn(3, _T("4"), LVCFMT_CENTER, 75)
m_list为关联变量
使CListctrl控件的列宽度固定:void CPList::OnHdnItemchanging(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMHEADER phdr = reinterpret_cast<LPNMHEADER>(pNMHDR)
// TODO: Add your control notification handler code here
NMHEADER *pHdr = (NMHEADER*)pNMHDR
CHeaderCtrl *pHead = GetHeaderCtrl()
pHdr->pitem->mask |= HDI_WIDTH
switch(pHdr->iItem)
{
case 0://第一列
pHdr->pitem->cxy = 33
break
case 1://第二列
pHdr->pitem->cxy = 250
break
case 2://第三列
pHdr->pitem->cxy = 145
break
}
*pResult = 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)