Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Win API


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / WinAPI

Выпуск № 527
от 16.04.2008, 03:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 351, Экспертов: 28
В номере:Вопросов: 1, Ответов: 2

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 131609: уважаемые эксперты! помогите примером. надо определить местоположение курсора и проверить на нажатие левой клавиши мыши. это я пытаюсь написать меню вручную. помогите, please, o4 надо....

Вопрос № 131.609
уважаемые эксперты!
помогите примером. надо определить местоположение курсора и проверить на нажатие левой клавиши мыши. это я пытаюсь написать меню вручную. помогите, please, o4 надо.
Отправлен: 11.04.2008, 00:17
Вопрос задал: S@ZaN (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Сандров Алекс
Здравствуйте, S@ZaN!

Местоположение курсора:

POINT pt;
GetCursorPos(&pt);

А вот нажатие левой кноки мыши, сложнее.

- если нужно ловить только в своём приложении, то можно работать с сообщением WM_SETCURSOR, которое будет прилетать в главное окно. В lParam будет в high-order word - мышиное сообщение, нужно ловить WM_LBUTTONDOWN.

- если надо ловить не только в своём окне, тогда надо заводить хук WH_MOUSE_LL
Ответ отправил: Сандров Алекс (статус: 7-ой класс)
Ответ отправлен: 11.04.2008, 07:42

Отвечает: Лысков Игорь Витальевич
Здравствуйте, S@ZaN!
В своем приложение легче всего отлавливать WM_LBUTTONDOWN,
в lParam имеем координаты.
При этом, не забываем, что координаты приходят в клиентской системе координат,
т.е. относительно левого верхнего угла клиентской области.
Чтобы по этим координатам строить меню, надо их преобразовать в экранные...
Примерно так:
POINT point;
point.x = LOWORD (lParam) ;
point.y = HIWORD (lParam) ;
ClientToScreen (hwnd, &point) ;

TrackPopupMenu (hMenu, 0, point.x, point.y, 0, hwnd, NULL) ;


---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
Ответ отправлен: 14.04.2008, 12:22


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 4.91 pre 5.0 RC1 от 13.04.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное