怎样修改控件ListCtrl的列表头的文字

Dupon_Bit 2006-09-14 09:23:37
我创建了一个列表,并且插入了几列,以后要怎样修改列表头的文字?
比如:
CListCtrl m_List;
...

m_List.ModifyStyle(0,LVS_REPORT|LVS_SINGLESEL|LVS_SHOWSELALWAYS);
m_List.InsertColumn(0,"第一列",LVCFMT_LEFT,80,0);
m_List.InsertColumn(1,"第二列",LVCFMT_CENTER,30,1);
m_List.InsertColumn(2,"第三列",LVCFMT_CENTER,30,2);
...
这之后要怎样修改列表头的文字呢,把"第一列"改成"改后的第一列" 这样。

请大家帮帮忙.
...全文
422 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jxfengzi 2006-09-15
  • 打赏
  • 举报
回复
//------------------------------------
// 以下代码编译通过
// m_listRecord 为listctrl控件
//------------------------------------


// 单击ListCtrl列标题, 更改字段名称
void CTestDlg::OnColumnclickListRecord(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;

CString strCol(128);
strCol.GetBufferSetLength(128);

LVCOLUMN lvColumn;
lvColumn.pszText = strCol.GetBuffer(1);
lvColumn.cchTextMax = 128;

CString str;
str.Format("单击的是第%d个字段", pNMListView->iSubItem);
AfxMessageBox(str);
m_listRecord.GetColumn(pNMListView->iSubItem, &lvColumn);
AfxMessageBox(lvColumn.pszText);

strCol = _T("更改后的字段名称");
lvColumn.mask = LVCF_TEXT|LVCF_SUBITEM;
lvColumn.pszText = strCol.GetBuffer(1);
lvColumn.cchTextMax = 128;

m_listRecord.SetColumn(pNMListView->iSubItem, &lvColumn);

*pResult = 0;
}
一条晚起的虫 2006-09-15
  • 打赏
  • 举报
回复
LPTSTR pszText; //表头文字
jeng 2006-09-15
  • 打赏
  • 举报
回复
是的!
Dupon_Bit 2006-09-14
  • 打赏
  • 举报
回复
是不是先Get出来再Set进去啊
Dupon_Bit 2006-09-14
  • 打赏
  • 举报
回复
BOOL SetItem( int nPos, HDITEM* pHeaderItem );
////////////
typedef struct _HDITEM {
UINT mask;
int cxy;
LPTSTR pszText;
HBITMAP hbm;
int cchTextMax;
int fmt;
LPARAM lParam;
#if (_WIN32_IE >= 0x0300)
int iImage;
int iOrder;
#endif
} HDITEM, FAR * LPHDITEM;

上面这个结构我不会用,请写出一段代码说明一下这个结构的用法,我只要改掉那个列表头的文字就行了,谢谢啊
DentistryDoctor 2006-09-14
  • 打赏
  • 举报
回复
CHeaderCtrl *pHeaderCtrl = m_List.GetHeaderCtrl();
pHeaderCtrl->SetItem(...);

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧