如何得到一个listctrl的列数 不通过获取header,然后Post HDM_GETITEMCOUNT的方法。 这个方法在Win2k上有时候失效。使用PostMessage()的方法实现。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 int nCount = (int)PostMessage(HDM_GETITEMCOUNT, 0, 0);难道这样不行吗? int columns = listCtrl.GetHeaderCtrl()->GetItemCount(); 同意int columns = listCtrl.GetHeaderCtrl()->GetItemCount(); int columns = listCtrl.GetHeaderCtrl()->GetItemCount(); pretranslatemessage里用sendmessage看看 是这样的,我是在Java里使用了SWT,这个库有一个Table控件,我看了它的源代码,在Windows上,获取Column count的方法是先通过Post一个LVM_GETHEADER来获取header的handle,但是这个调用在进行多次窗口最大化/恢复操作以后,返回的handle会变成0,所以后续的Post HDM_GETITEMCOUNT也就无法正常返回列数了。这种现象仅仅发生在Windows2K上,在XP上不会失效。现在我想知道,不通过得到Header的handle, 是否有方法能够获得List Control的列数。 得到列数的代码如下: 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 时就直接读保存的值 //获取被选中的列CList c_list;c_list.GetSelectedColumn(); 帮忙想办法下载 缓冲区不足而导致iocp多次接收到请求 SDK列表视图的问题. 两个不知道是不是问题的问题 如何提示DLL找不到 怎样提取表格中每个记录的字段值? 请问:在CRichEditCtrl类下,获取控件的带格式码的文本,应该用什么函数?谢谢了 求解关于vc与matlib混合编程的几个问题 谁能帮我改写一下这个SQL? 请教关于Internet HTTP 服务的一个程序问题,谢谢。。。 对话框 vc调用dll中的结构体
int columns = listCtrl.GetHeaderCtrl()->GetItemCount();
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; //这是列的总数
CList c_list;
c_list.GetSelectedColumn();