Главная страница
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.47 MB
Время: 0.026 c
14-1124200197
Piter
2005-08-16 17:49
2005.09.25
LJ дневник человека, служащего в армии :)


3-1123934333
Marser
2005-08-13 15:58
2005.09.25
ADO. Отслеживание изменения БД.


14-1125310284
Kerk
2005-08-29 14:11
2005.09.25
По какому календарю сегодня 1 апреля?


3-1123583139
Juice
2005-08-09 14:25
2005.09.25
Сист. таблицы, узнать constraint некоего поля


6-1117874430
Random(256)
2005-06-04 12:40
2005.09.25
Как установить соединение без компонентов...