Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

мессага dblclik для listview [D7, XP]


malyar ©   (2006-08-07 14:12:00) 

всем привет
народ подскажите как компоненту listview, находящемуся в чужом приложении, кинуть мессагу двойного клика по определенному итемсу ?
указатель на listview известен а вот что дальше не могу сообразить .

P.S. за пример особая благодарность )))


clickmaker   (2006-08-07 17:59:00) [1]


> malyar   (07.08.06 17:49) [14]

блин, быстрей бы поиском по Delphi\Source нашел, чем на форуме ждать...
CommCtrl.pas


malyar   (2006-08-07 17:49:00) [2]

а в каком модуле объявлены упомянутые константы ?


clickmaker   (2006-08-07 17:10:00) [3]

ну идея-то понятна?
LVM_ENSUREVISIBLE - сделать итем видимым
LVM_GETITEMRECT - можно получить координаты пункта
дальше уже можно мышкой в теперь известное место щелкнуть


malyar   (2006-08-07 17:01:00) [4]

ok....
итем выделен и что дальше ......


clickmaker   (2006-08-07 16:43:00) [5]


> malyar   (07.08.06 16:38) [10]

а что, есть такая константа? не слышал...
чтобы выделить итем штатным образом - SendMessage LVM_SETITEM с указанием LVIF_STATE и LVIS_SELECTED в соотв. полях LV_ITEM


malyar   (2006-08-07 16:38:00) [6]

какое имя у константы отвечающее за двойной клик для listview по определенному итему  ?


clickmaker   (2006-08-07 16:30:00) [7]


> malyar   (07.08.06 16:06) [8]
> загнать структуру вчужое А П для меня не проблема

да? ну а в чем тогда проблема?


malyar   (2006-08-07 16:06:00) [8]

загнать структуру вчужое А П для меня не проблема да ето проще и надежнее чем координаты вычеслять


clickmaker   (2006-08-07 15:58:00) [9]


> malyar   (07.08.06 15:55) [6]

листвью этот в чужом адресном пространстве. Поэтому сообщения типа LVM_XXX для него не проканают, поскольку там передается адрес структуры LV_ITEM как правило.
Поэтому если уж так надо сымитировать даблклик, то только косвенно, притворяясь мышью или клавой


malyar   (2006-08-07 15:55:00) [10]

а что нет ни какой мессаги с помощью которой мона передать dblclik используя в качестве параметра  номер итемса ?


clickmaker   (2006-08-07 15:45:00) [11]


> malyar   (07.08.06 15:27) [4]

хм...
ну придется тогда как-то определять и ширину и есть ли он на экране. Потом прокручивать окно. WM_VSCROLL или WM_HSCROLL (опять же, если этот листвью в нескольких режимах просмотра может быть, их надо учитывать)
Может для твоей задачи есть способ проще? Но не зная задачи, сказать нельзя


malyar   (2006-08-07 15:27:00) [12]

попытка добавить в одну из не мной написаных прог новую возможность


clickmaker   (2006-08-07 15:00:00) [13]


> malyar   (07.08.06 14:49) [2]

А зачем это надо вообще?


malyar   (2006-08-07 14:49:00) [14]

если я не ошибаюсь то это кликанье по координате окна для чего надо знать
ширину итемса в пикселях .
да и если итемса не видно на екране, за пределами окна (скролл), то ничего не получится .  или я не прав ?


clickmaker   (2006-08-07 14:36:00) [15]

mouse_event()
PostMessage(hwnd, WM_LBUTTONDBLCLK, MK_LBUTTON,
 x or (y shl 16));
учти, что x, y должны быть относительно окна-адресата


Наверх

Титульная страница Поиск, карта сайта Написать письмо