修改ListCtrl控件标题文本居左显示
原来的列标题文本是居中显示:
现在要把列表文本居中改为居左显示
其方法如下:
- 获得标题控件句柄
g_listCtrl.m_hWnd为ListCtrl控件的句柄
HWND hHead =(HWND)::SendMessage(g_listCtrl.m_hWnd, LVM_GETHEADER, 0, 0);
- 在ListCtrl控件插入列后面,获得列的总数
int nCol = SendMessage(hHead, HDM_GETITEMCOUNT, 0, 0);
- 循环设置列的文本居左显示
要填充一个HDITEM结构体
for (int i = 0; i < nCol; i++)
{
HDITEM ht = { 0 };
ht.mask = HDI_FORMAT /*| HDI_WIDTH | HDI_TEXT*/;//设置下面的fmt数据有效的掩码
ht.fmt = HDF_LEFT | HDF_STRING; //主要是这句,设置为居左,显示字符串
int n = SendMessage(hHead, HDM_SETITEM, i, LPARAM(&ht));
}
这样就成功修改列标题文本显示的位置了.