|
|
#1
|
|||
|
|||
Сложный хук
Доброго времени уважаемые люди) На тему хуков много написано и спрошено, всё перерыл, клава и мышка легко перехватывается, но это всё не то что нужно... перехожу к сути вопроса:
Как, во время нажатия курсора на кнопку(компонент, пункт из меню и т д) в общем в любое поле, перехватить это событие, и вычислить название этого объекта. п.с. не спешите ругаться или рассказывать про вызов геттекст через хэндл или про олеацц, это всё я знаю, и это всё не то, у многих компонентов на форме нет своего хндла, однако во время события, выполняемого при нажатии на этот компонент, событие знает, что именно нажали. кто в курсе, хэлп, очень надо, подробнее, и с примером) ^_^ |
#2
|
||||
|
||||
Вот такой вариант: допустим, я вручную нарисовал на форме картинку кнопки, а в обработчике нажатия формы прописал, что "если координаты принадлежат этому рисунку - сделать то-то." Как такое отловить? Никак. Ведь никто снаружи программы понятия не имеет о том, что такая картинка - это кнопка, а сякая - мемо.
И, если я не ошибаюсь, TImage работает подобным образом (рисуется на канвасе самой формы). jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
|||
|
|||
такое бывает, да, но редко и это тоже можно проверить, привязку именно к координатам,
|
#4
|
||||
|
||||
хук на WH_CALLWNDPROC и ловить когда PCWPStruct(lParam)^.message=WM_COMMAND
хэндл контрола будет в PCWPStruct(lParam)^.lParam Пишу программы за еду. __________________ |
#5
|
|||
|
|||
спасяб, потестю
|