Здравствуйте...
Возникла необходимость поработать с ListControl в visual studio 2005 через CallBack -функию, соотв. с использованием сообщений...
Но почитав MSDN, изучив соответствующие структуры для добавления колонок и элементов, просмотрев все сообщения данного контрола, я потратил кучу времени на то, чтобы правильно создать ListControl (в виде Report) с 3 колонками и добавить в него элементы, но успеха в этом, мягко говоря, "геморойном" занятии не достиг...
Может, кто-нить уже сталкивался с подомной задачей и успешно её решил?
Основные вопросы:
1. Как правильно создать именно 3 колонки? А то я используя LVM_INSERTCOLUMN сообщение, их создал, но остётся ещё одна (дефаултвская) и с ней ничего не зделаешь ни удалишь, при помощи LVM_SETCOLUMN собщения ни отредактируешь...
2. Как правильно описать LVITEM — структуру для добавления элемента в список подобного вида при помрщи LVM_INSERTITEM сообщения? Мне нужно, чтобы опр. текст был в опр колонке...
Заранее большое спасибо всем, кто примет участие в обсуждении..
29.08.07 13:58: Перенесено модератором из 'Пользовательский интерфейс: проектирование, usability' — Хитрик Денис
Здравствуйте, 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>Заранее большое спасибо всем, кто примет участие в обсуждении..