读书人

怎么得到一个listctrl的列数

发布时间: 2012-02-07 17:45:37 作者: rapoo

如何得到一个listctrl的列数
不通过获取header,然后Post HDM_GETITEMCOUNT的方法。 这个方法在Win2k上有时候失效。

使用PostMessage()的方法实现。

[解决办法]
不是很懂,呵呵,不过既然进来了,就顺便帮你顶了!
[解决办法]
int nCount = (int)PostMessage(HDM_GETITEMCOUNT, 0, 0);

难道这样不行吗?
[解决办法]
int columns = listCtrl.GetHeaderCtrl()-> GetItemCount();
[解决办法]
楼上正解,如果是跨进程的话,你肯定要提供一块内存才行.
[解决办法]
同意
int columns = listCtrl.GetHeaderCtrl()-> GetItemCount();
[解决办法]
CHeaderCtrl::GetItemCount
[解决办法]
int columns = listCtrl.GetHeaderCtrl()-> GetItemCount();
[解决办法]
帮顶
[解决办法]
pretranslatemessage里用sendmessage看看
[解决办法]
得到列数的代码如下:
LVCOLUMN pColumn;
ZeroMemory(&pColumn,sizeof(LVCOLUMN));
CListCtrl m_listCtrl;
int nCol = 0,nColNum = 0;
while( m_listCtrl.GetColumn(nCol,&pColumn) == TRUE )
{
nCol +=1;
}
nColNum = nCol; //这是列的总数
[解决办法]
如果重要的话, 某一次 handle 不为 NULL 时获取成功了就保存起来, 为 NULL 时就直接读保存的值

读书人网 >VC/MFC

热点推荐