LVCOLUMN.cchTextMax 和 LVITEM.cchTextMax 的目的是什么?
What is the purpose of LVCOLUMN.cchTextMax and LVITEM.cchTextMax?
我尝试将LVCOLUMN.cchTextMax
和LVITEM.cchTextMax
的值设置为一个随机值(小于相应的字符串长度)并且成功了,是错误的还是这些字段不是有必要设置吗?
我也看到过不使用这些字段的例子,例如:http://www.codeproject.com/Articles/9148/C-functions-to-insert-columns-items-and-subitems-i
LVITEM structure 的文档对 cchTextMax
成员有以下说明:
This member is only used when the structure receives item attributes. It is ignored when the structure specifies item attributes. For example, cchTextMax is ignored during LVM_SETITEM and LVM_INSERTITEM. It is read-only during LVN_GETDISPINFO and other LVN_ notifications.
除非您使用此结构检索项目信息,否则此成员将被忽略。接收数据时,您必须将指向缓冲区的指针传递给 pszText
,并通过 cchTextMax
成员传达其大小。
这是整个 Windows API 中的通用模式,其中使用相同的结构来设置和查询值。各个成员的语义取决于方向。例如,以类似方式使用的其他常见结构包括 TVITEM or MENUITEMINFO。
我尝试将LVCOLUMN.cchTextMax
和LVITEM.cchTextMax
的值设置为一个随机值(小于相应的字符串长度)并且成功了,是错误的还是这些字段不是有必要设置吗?
我也看到过不使用这些字段的例子,例如:http://www.codeproject.com/Articles/9148/C-functions-to-insert-columns-items-and-subitems-i
LVITEM structure 的文档对 cchTextMax
成员有以下说明:
This member is only used when the structure receives item attributes. It is ignored when the structure specifies item attributes. For example, cchTextMax is ignored during LVM_SETITEM and LVM_INSERTITEM. It is read-only during LVN_GETDISPINFO and other LVN_ notifications.
除非您使用此结构检索项目信息,否则此成员将被忽略。接收数据时,您必须将指向缓冲区的指针传递给 pszText
,并通过 cchTextMax
成员传达其大小。
这是整个 Windows API 中的通用模式,其中使用相同的结构来设置和查询值。各个成员的语义取决于方向。例如,以类似方式使用的其他常见结构包括 TVITEM or MENUITEMINFO。