【问题标题】:What is the purpose of LVCOLUMN.cchTextMax and LVITEM.cchTextMax?LVCOLUMN.cchTextMax 和 LVITEM.cchTextMax 的用途是什么?
【发布时间】:2015-04-29 14:55:42
【问题描述】:

我尝试将LVCOLUMN.cchTextMaxLVITEM.cchTextMax 的值设置为随机值(小于相应的字符串长度)并且成功了,是误操作还是这些字段不需要设置?

我也见过不使用这些字段的例子,例如:http://www.codeproject.com/Articles/9148/C-functions-to-insert-columns-items-and-subitems-i

【问题讨论】:

  • 它是一个在您从 API 调用接收该结构时填充的字段,在调度它时它无关紧要。

标签: c listview winapi


【解决方案1】:

LVITEM structure 的文档对cchTextMax 成员有以下说明:

该成员仅在结构接收项目属性时使用。当结构指定项目属性时,它会被忽略。例如,cchTextMaxLVM_SETITEMLVM_INSERTITEM 期间被忽略。在LVN_GETDISPINFO 和其他 LVN_ 通知期间它是只读的。

除非您使用此结构来检索项目信息,否则此成员将被忽略。接收数据时,您必须将指向缓冲区的指针传递给pszText,并通过cchTextMax 成员传达其大小。

这是整个 Windows API 中的一种常见模式,其中使用相同的结构来设置和查询值。各个成员的语义取决于方向。例如,以类似方式使用的其他常见结构包括TVITEMMENUITEMINFO

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-18
    • 2012-04-17
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多