2015-04-29 6 views
0

Я попытался установить значения LVCOLUMN.cchTextMax и LVITEM.cchTextMax на случайное значение (меньше соответствующей длины строки), и он сработал, сделал ли он работу по ошибке или эти поля не нужно устанавливать?Какова цель LVCOLUMN.cchTextMax и LVITEM.cchTextMax?

Я также видел примеры, которые не используют эти поля, например: http://www.codeproject.com/Articles/9148/C-functions-to-insert-columns-items-and-subitems-i

+0

Это поле, которое заполняется, когда вы получаете * эту структуру из вызова API, что не имеет значения при отправке. –

ответ

1

в документации по LVITEM structure имеет следующие сказать о cchTextMax члена:

Этот элемент используется только когда структура получает атрибуты элемента. Он игнорируется, когда структура указывает атрибуты элемента. Например, cchTextMax игнорируется в течение LVM_SETITEM и LVM_INSERTITEM. Он доступен только для чтения в течение LVN_GETDISPINFO и других уведомлений LVN_.

Если вы не используете эту структуру для получения информации о предмете, этот элемент игнорируется. При получении данных вы должны передать указатель на буфер до pszText и сообщить свой размер через член cchTextMax.

Это общий шаблон во всем Windows API, где та же структура используется для установки и запроса значений. Семантика отдельных членов зависит от направления. Другие общие структуры, которые используются аналогичным образом, включают, например, TVITEM или MENUITEMINFO.

Смежные вопросы