Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2009, 20:39   #1
jungle
Пользователь
 
Аватар для jungle
 
Регистрация: 22.11.2008
Сообщений: 65
Вопрос Как поймать клик по строке в ListView?

WM_NOTIFY + NM_CLICK или как?
Кто делал?
jungle вне форума Ответить с цитированием
Старый 14.10.2009, 21:36   #2
lennon
Заблокирован
 
Регистрация: 18.11.2007
Сообщений: 254
По умолчанию

Код:
case WM_NOTIFY:
{
 switch(((NMHDR*)lParam)->idFrom)
 {
  case IDC_LIST1:
  {
   switch(((NMHDR*)lParam)->code)
   {
     case NM_DBLCLK:
     {
     }
   }
  }
 }
}
lennon вне форума Ответить с цитированием
Старый 15.10.2009, 02:11   #3
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

или так

Код:
case WM_COMMAND : switch (LOWORD(wParam))
{
    case ID_LIST : switch(HIWORD (wParam))
    {
             case LBN_DBLCLK :
     }
}
counter вне форума Ответить с цитированием
Старый 15.10.2009, 06:04   #4
jungle
Пользователь
 
Аватар для jungle
 
Регистрация: 22.11.2008
Сообщений: 65
По умолчанию

Код:
    WM_COMMAND:
      case LoWord(wParam) of
        1000:
          begin
            case HiWord(wParam) of
              LBN_DBLCLK:
                begin
                  messagebox(0,'','',0);
                end;
            end;
          end;
Такой код не работает.
Просто поймать клик по ListView могу, хотелось бы отловить клик по конкретной строке.

Код:
  if (Msg.hwnd = ListView[2]) and (Msg.message = WM_LBUTTONUP) then
  begin
    messagebox(0,'','',0);
  end;

Код:
((NMHDR*)lParam)->code
Lennon, это как читать?
jungle вне форума Ответить с цитированием
Старый 19.10.2009, 06:15   #5
jungle
Пользователь
 
Аватар для jungle
 
Регистрация: 22.11.2008
Сообщений: 65
Лампочка ListView delphi pascal WM_NOTIFY NM_CLICK

Lennon, спасибо.

Код:
WM_NOTIFY:
begin                                                                            
    if PNMHDR(lParam)^.hwndFrom = ListView1 then
      if PNMHDR(lParam)^.code = NM_CLICK then
      begin
        // тут нужно отправить сообщение LVM_GETNEXTITEM с параметром LVNI_SELECTED,
        // в переменную типа Integer будет возвращен индекс строки;
        // потом можно, например, удалить эту строку: 
        // SendMessage(ListView1, LVM_DELETEITEM, переменная, 0)
      end
end;
Кстати, нигде нормальных примеров найти не смог.

Последний раз редактировалось jungle; 19.10.2009 в 06:26.
jungle вне форума Ответить с цитированием
Старый 19.10.2009, 10:10   #6
lennon
Заблокирован
 
Регистрация: 18.11.2007
Сообщений: 254
По умолчанию

Цитата:
Сообщение от jungle Посмотреть сообщение
Lennon, спасибо.
Кстати, нигде нормальных примеров найти не смог.
Разобрался? Есть хорошая книга - Щупак Win32 API
lennon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перетащить элемент ListView в другой ListView? Paul Hindenburg Компоненты Delphi 5 26.01.2013 11:35
Клик по чужому LISTVIEW Neoteric Общие вопросы Delphi 6 14.04.2009 12:16
Отправка SMS через клик по строке таблицы RUBEY Microsoft Office Excel 4 25.12.2008 11:07
ListView: как поймать CDDS_POSTERASE в NM_CUSTOMDRAW instance Win Api 0 12.05.2008 16:33
Как поймать событие в COM? den303 Общие вопросы Delphi 0 13.09.2007 12:06