CListCtrl获得列的属性可以使用BOOL CListCtrl::GetColumn( int nCol, LVCOLUMN* pColumn ),nCol为需要获得获得属性值的列序号,pColumn 为 LVCOLUMN 结构体的指针。LVCOLUMN结构体中的 UINT mask 作为输入,决定返回哪些属性的值,如果 mask 的值包含 LVCF_TEXT ,则需要将字符串缓存的首地址指针置入结构体中的 LPTSTR  pszText; 变量,缓存大小置入 int cchTextMax; 变量。

 

使用这个函数的主要问题是主要问题期望返回 LVCF_TEXT ,设置了 pszText 却没有设置 cchTextMax 变量,并且通常都在分配 LVCOLUMN 结构体空间时将所分配的内存清0,因此总是不能返回列名。反而是没有清0所分配空间,直接设置 mask  LVCF_TEXT ,那么可能可以获得列名的值。当然只要正确设置 pszText cchTextMax 就不会有这些问题。

 

还有一个问题是列的数量。没有直接的函数可以获得列的数量,只能从0开始不断自增 nCol 的值,判断 GetColumn( nCol,pColumn ) 的返回值是否为 False 以计算列的数量。

}


完整工程示例可以在这里下载,使用VC6 MFC 。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-09-09
  • 2022-12-23
  • 2021-06-06
  • 2021-12-14
  • 2021-12-16
猜你喜欢
  • 2021-09-10
  • 2021-12-01
  • 2022-12-23
  • 2021-11-09
  • 2021-11-14
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案