Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.09.29;
Скачать: [xml.tar.bz2];

Вниз

Разница между сообщениями 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.09.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
1-96241
Nikulin
2003-09-17 14:13
2003.09.29
Помогите разобраться и понять в чем я не прав...


14-96367
Igorek
2003-09-08 16:11
2003.09.29
Флеймерам и флудерам предлагается обсудить проблему


1-96211
Shaman
2003-09-17 20:18
2003.09.29
Что сделать, чтобы дельфя не перекомпиливала модули


14-96351
Filat
2003-09-09 19:04
2003.09.29
Ну ооооччччень надо! :)))


14-96341
asp
2003-09-12 12:53
2003.09.29
Баннеры в ICQ





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский