![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Dwyane |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 8.5.2007 Репутация: нет Всего: 1 |
Люди, подскажите пожалуйста как найти id ну и координаты объекта над которым сейчас мыши находится. Как понятно, объект может принадлежать абсолютно любому запущенному приложению. Всем заранее большое спасибо!
|
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
Координаты мыши определяются через GetCursorPos.
Хендл окна ищется через WindowFromPoint. Идентификатор контрола можно узнать с помощью GetDlgCtrlID. Координаты с помощью функции GetWindowRect. |
|||
|
||||
Dwyane |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 8.5.2007 Репутация: нет Всего: 1 |
Большое спасибо. А как тогда мы узнаем хендрел для объекта на форме? Мы же его должны передать для GetDlgCtrlID.
|
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
Что подразумевается под словом объект? Если дочернее окно (кнопки, поля ввода и т.п.) их вернёт WindowFromPoint. Эта функция возвращает окно по координатам независимо от того, дочернее окно, или нет. Отличить дочерние окна от обычных можно по стилю WS_CHILD
|
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Нет, WindowFromPoint найдет только окно верхнего уровня, а дальше нужно искать с помощью ChildWindowFromPoint.
-------------------- ... |
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
То, что и автору нужно - окно под курсором. Эта функция ищет окна по клиентским координатам родительского окна. Возвращает либо само родительское окно, либо дочернее окно, либо NULL, если выход за пределы окна. |
|||
|
||||
Dwyane |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 8.5.2007 Репутация: нет Всего: 1 |
А WindowFromPoint будет работать если под курсором активх лежит?
Просто не понятно, почему Spy++ не находит такие елементы. Например: в ворде Spy++ видит ToolBar. А самих кнопок не находит. |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Потому что кнопки на тулбаре - это не окна.
-------------------- ... |
|||
|
||||
Dwyane |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 8.5.2007 Репутация: нет Всего: 1 |
А их как-то можно находить? Есть ли для этого АПИ какой-то?
|
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Ищи информацию o Toolbar control - сообщения с префиксом TB_ и прочее.
-------------------- ... |
|||
|
||||
FiMa1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 408 Регистрация: 23.9.2006 Репутация: нет Всего: 6 |
Получить заголовок окна по координате курсора - Еще даже с первой страницы 'C/C++: Системное программирование и WinAPI' не опустилось, можно было прямо Ctrl+F'ом искать...
Это сообщение отредактировал(а) FiMa1 - 30.6.2008, 08:45 |
|||
|
||||
Dwyane |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 8.5.2007 Репутация: нет Всего: 1 |
Такой подход не подойдет для не оконных объектов. Попробуй например ICQ, Winword toolbar.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |