Форум: "Начинающим";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];
Внизмессага dblclik для listview Найти похожие ветки
← →
malyar (2006-08-07 14:12) [0]всем привет
народ подскажите как компоненту listview, находящемуся в чужом приложении, кинуть мессагу двойного клика по определенному итемсу ?
указатель на listview известен а вот что дальше не могу сообразить .
P.S. за пример особая благодарность )))
← →
clickmaker © (2006-08-07 14:36) [1]mouse_event()
PostMessage(hwnd, WM_LBUTTONDBLCLK, MK_LBUTTON,
x or (y shl 16));
учти, что x, y должны быть относительно окна-адресата
← →
malyar (2006-08-07 14:49) [2]если я не ошибаюсь то это кликанье по координате окна для чего надо знать
ширину итемса в пикселях .
да и если итемса не видно на екране, за пределами окна (скролл), то ничего не получится . или я не прав ?
← →
clickmaker © (2006-08-07 15:00) [3]
> malyar (07.08.06 14:49) [2]
А зачем это надо вообще?
← →
malyar (2006-08-07 15:27) [4]попытка добавить в одну из не мной написаных прог новую возможность
← →
clickmaker © (2006-08-07 15:45) [5]
> malyar (07.08.06 15:27) [4]
хм...
ну придется тогда как-то определять и ширину и есть ли он на экране. Потом прокручивать окно. WM_VSCROLL или WM_HSCROLL (опять же, если этот листвью в нескольких режимах просмотра может быть, их надо учитывать)
Может для твоей задачи есть способ проще? Но не зная задачи, сказать нельзя
← →
malyar (2006-08-07 15:55) [6]а что нет ни какой мессаги с помощью которой мона передать dblclik используя в качестве параметра номер итемса ?
← →
clickmaker © (2006-08-07 15:58) [7]
> malyar (07.08.06 15:55) [6]
листвью этот в чужом адресном пространстве. Поэтому сообщения типа LVM_XXX для него не проканают, поскольку там передается адрес структуры LV_ITEM как правило.
Поэтому если уж так надо сымитировать даблклик, то только косвенно, притворяясь мышью или клавой
← →
malyar (2006-08-07 16:06) [8]загнать структуру вчужое А П для меня не проблема да ето проще и надежнее чем координаты вычеслять
← →
clickmaker © (2006-08-07 16:30) [9]
> malyar (07.08.06 16:06) [8]
> загнать структуру вчужое А П для меня не проблема
да? ну а в чем тогда проблема?
← →
malyar (2006-08-07 16:38) [10]какое имя у константы отвечающее за двойной клик для listview по определенному итему ?
← →
clickmaker © (2006-08-07 16:43) [11]
> malyar (07.08.06 16:38) [10]
а что, есть такая константа? не слышал...
чтобы выделить итем штатным образом - SendMessage LVM_SETITEM с указанием LVIF_STATE и LVIS_SELECTED в соотв. полях LV_ITEM
← →
malyar (2006-08-07 17:01) [12]ok....
итем выделен и что дальше ......
← →
clickmaker © (2006-08-07 17:10) [13]ну идея-то понятна?
LVM_ENSUREVISIBLE - сделать итем видимым
LVM_GETITEMRECT - можно получить координаты пункта
дальше уже можно мышкой в теперь известное место щелкнуть
← →
malyar (2006-08-07 17:49) [14]а в каком модуле объявлены упомянутые константы ?
← →
clickmaker © (2006-08-07 17:59) [15]
> malyar (07.08.06 17:49) [14]
блин, быстрей бы поиском по Delphi\Source нашел, чем на форуме ждать...
CommCtrl.pas
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.041 c