Re: Работа с ListControl(ListView) в Visual Studio через соо
От: programmater  
Дата: 30.08.07 10:39
Оценка:
Здравствуйте, YuriyRus, Вы писали:

YR>Здравствуйте...

[кусь]
YR>Основные вопросы:
YR>1. Как правильно создать именно 3 колонки? А то я используя LVM_INSERTCOLUMN сообщение, их создал, но остётся ещё одна (дефаултвская) и с ней ничего не зделаешь ни удалишь, при помощи LVM_SETCOLUMN собщения ни отредактируешь...
Это нормально. Это фиктивная колонка. Ничего сделать с ней нельзя. В том числе и установить значения полей. ее задача — исключительно заполнять пустое место в контроле. Если растянуть предыдущие колонки на всю ширину контрола, то последняя колонка пропадет и скрол внизу не появится (что говорит о том, что реально этой колонки нет). Поэтому как вариант — используй стиль LVS_NOCOLUMNHEADER (по-моему выставляется в редакторе ресурсов) и правильно рассчитывай ширину твоих трех колонок. Если же обязательно нужно дать юзеру возможность изменять ширишу колонок — ну извини, иногда будет вылазить эта "четвертая колонка" . Конечно и в этом случае проблему можно решить, но это уже задача для настоящих джедаев .
YR>2. Как правильно описать LVITEM — структуру для добавления элемента в список подобного вида при помрщи LVM_INSERTITEM сообщения? Мне нужно, чтобы опр. текст был в опр колонке...
А какие проблемы? Все нормально там заполняется . Единственное, с помощью LVM_INSERTITEM ты можешь установить текст только в первой колонке. Поэтому для сообщения LVM_INSERTITEM поле iSubItem обязано быть 0. Для установки текста в других колонках используй сообщение LVM_SETITEM или LVM_SETITEMTEXT. А так все там просто. Разберись, правильно ли ты выставляешь поле маски (mask) и все должно заработать. У меня работает .
YR>Заранее большое спасибо всем, кто примет участие в обсуждении..
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.