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

Вниз

Не работает LVM_GETITEMTEXT   Найти похожие ветки 

 
***_Diman_***   (2005-08-02 07:50) [0]

сабж. уже третий день бьюсь и всё без толку. код такой (Цэ):

INT  i;
LVITEM lvi;

i = SendMessage(ListView1,LVM_GETITEMCOUNT,NULL,NULL);
while (i != 0)
{
SendMessage(ListView1,LVM_GETITEMTEXT,WPARAM(i),LPARAM(&lvi);
MessageBox(0,lvi.pszText,TEXT("text"),MB_OK);
i--;
}
плюс ко всему - как отловить WM_LBUTTONDBLCLICK на ListView?


 
begin...end ©   (2005-08-02 08:52) [1]

> ***_Diman_***   (02.08.05 7:50)

1. Структуру LVITEM нужно инициализировать. В частности, должна быть выделена память для буфера, который будет принимать текст. Обо всём этом можно узнать из справки или MSDN (см. описание сообщения LVM_GETITEMTEXT или макроса ListView_GetItemText).

2. LVM_GETITEMCOUNT возвращает число элементов. Однако индекс последнего элемента будет меньше количества элементов на единицу, потому что их индексация начинается с нуля. В Вашем коде это не учтено.

3. Си я уже основательно позабыл, поэтому написал и привожу рабочий (на первый взгляд) код на Delphi:

const
 MaxLength = 255; // Взято совершенно "с потолка"
var
 I: Integer;
 Item: LV_ITEM;
begin
 I := SendMessage(ListView.Handle, LVM_GETITEMCOUNT, 0, 0);
 if I > 0 then
 begin
   GetMem(Item.pszText, MaxLength);
   try
     Item.cchTextMax := MaxLength;
     Item.iSubItem := 0;
     repeat
       Dec(I);
       Item.iItem := I;
       SendMessage(ListView.Handle, LVM_GETITEMTEXT, I, Integer(@Item));
       MessageBox(0, Item.pszText, "Text", MB_OK);
     until I = 0;
   finally
     FreeMem(Item.pszText)
   end
 end
end.


 
***_Diman_***   (2005-08-02 10:28) [2]

Окей, спасибо!



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

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

Наверх




Память: 0.44 MB
Время: 0.039 c
3-1123669316
Виталий Панасенко
2005-08-10 14:21
2005.09.25
Документация по FireBird


8-1115726525
X-Disa
2005-05-10 16:02
2005.09.25
Перехватить audio-out поток


1-1125409650
Anat
2005-08-30 17:47
2005.09.25
РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ


1-1125482078
Barloggg
2005-08-31 13:54
2005.09.25
Какое сложение двух пар чисел быстрее?


2-1124186969
Пантелеев Иван
2005-08-16 14:09
2005.09.25
Работа с реестром





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский