Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.29;
Скачать: CL | DM;

Вниз

Разница между сообщениями TVM_GETITEM и TVN_DISPINFO   Найти похожие ветки 

 
Bless   (2003-07-17 17:22) [0]

В чем сабж?


 
DVM ©   (2003-07-17 19:04) [1]

В чем проблема то?

TVM_GETITEM - позволяет получить информацию об итеме по каким-либо начальным сведениям.

TVN_DISPINFO - извещающее сообщение, треевью нужна информация об итеме (приходит в родительское окно)


 
Bless   (2003-07-18 10:02) [2]

>В чем проблема то?
Да конкретно уже не в чем. Просто хочу разобраться, а то каша в голове.

Смотрел хелп по структуре TV_ITEM.

pszText

Pointer to a null-terminated string that contains the item text if the structure specifies item attributes. If this member is the LPSTR_TEXTCALLBACK value, the parent window is responsible for storing the name. In this case, the tree-view control sends the parent window a TVN_GETDISPINFO notification message when it needs the item text for displaying, sorting, or editing, and a TVN_SETDISPINFO notification message when the item text changes.

Отсюда и возник вопрос.
Если pszText=LPSTR_TEXTCALLBACK, то где хранится текст узла?
Где-то у родителя? TVN_GETDISPINFO и TVN_SETDISPINFO - это просто информационные сообщения("хочу узел, имей это ввиду") родителю или еще и возвращают/устанавливают информацию об узле.
Если возвращают, то что, ими нужно пользоваться вместо TVM_GETITEM и TVM_SETITEM или как?


 
DVM ©   (2003-07-20 16:15) [3]


> Если pszText=LPSTR_TEXTCALLBACK, то где хранится текст узла?

Где угодно, но не в самом TreeView. Когда ему нужен текст (для перерисовки или еще для чего), он просто запрашивает с помощью извещающих сообщений родительское окно. Родительское окно и должно ответить текстом, картинкой и т.д. Если родительское окно не отвечает, то текст не появится. Грубо говоря так.

Текст я обычно храню в некой структуре, адрес которой лежит в LParam итема.


 
Bless   (2003-07-21 09:16) [4]

В принципе понятно. А как последних двух вопросов. Собственно ответы на них мне и нужны.

1)
TVN_GETDISPINFO и TVN_SETDISPINFO - это просто информационные сообщения("хочу узел, имей это ввиду") родителю или еще и возвращают/устанавливают информацию об узле?

2)
Если возвращают, то что, ими нужно пользоваться вместо TVM_GETITEM и TVM_SETITEM или как?


 
DVM ©   (2003-07-22 15:48) [5]

1) Они сообщают адрес структуры в памяти, в которой содержится (или которую надо наполнить) информация (ией).
2) TVM_GETITEM и TVM_SETITEM тут вообще не нужны.

http://src.fitkursk.ru/online/bsp22/ch3_1.asp - тут все продробно описано, там еще есть статьи, посмотри.
Там и про TreeView и про ListView.

Там правда на C++, но очень просто, только надо сопоставить типы данных из C в эквиваленты на Pascal.


 
Bless   (2003-07-28 16:19) [6]

Спасибо, посмотрю



Страницы: 1 вся ветка

Текущий архив: 2003.09.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.033 c
3-96151
UnMi
2003-09-05 15:22
2003.09.29
Вставка в XML файл Unicode строки


1-96260
griff
2003-09-12 14:10
2003.09.29
i/o error 21


1-96246
Karburator
2003-09-17 15:52
2003.09.29
Файл


14-96344
iZEN
2003-09-09 22:54
2003.09.29
Книги по программированию.


3-96069
Abikos
2003-09-10 17:38
2003.09.29
Процедура в Interbase