![]() |
|
|
![]()
|
|
| 13dreams |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 1.7.2010 Репутация: нет Всего: нет |
В принципе я разобрался. Использую вышеприведённый код - в (PreTranslateMessage) для того чтобы ловить на какой кнопке был совершён клик пользуюсь сообщением WM_LBUTTONDOWN. Устанавливаю там флаг
и дальше в WM_LBUTTONUP двигаю кнопку в координаты где находился курсор в данный момент. Но не получается преобразовать координаты курсора
Ошибка - невозможно преобразовать из CPoint в LPPOINT как получить координаты курсора (или преобразовать их) |
|||
|
||||
| Albor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
||||
|
||||
| 13dreams |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 1.7.2010 Репутация: нет Всего: нет |
Спасибо большое! Всё получилось но один момент : пришлось вместо строки
т.к. объект двигался на небольшом расстоянии от курсора Чего так происходит? Я так понимаю нужно что-то к чему-то привести? ps и если кто-то захочет использовать код - я определил флаг не в том месте. Его нужно определить где-то повыше |
||||
|
|||||
| 13dreams |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 1.7.2010 Репутация: нет Всего: нет |
Пожалуйста, помогите довести до конца пример
решил использовать приведённую выше идею чтобы сократить код
Работает некорректно. 1. Выше написано что нужно (pMsg->pt) привести к клиентским координатам. Как это сделать? 2. Как выполнить проверку на то, что не получен указатель на главное окно? Чтоб окно не реагировало на код изменения положения Заранее спасибо! |
||||
|
|||||
| Ghost99 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 6.6.2009 Репутация: нет Всего: нет |
Я таки дико извиняюсь,что поднимаю мертвую тему но...
Можно использовать сообщения в не клиентскую область окна: Наследник от CButton:
тут есть единственная промблемма - как получить сообщение, что левая кнопка отпущена и передать это контроллу? Перемещение работает, но конторол после перемещения ведет себя не адекватно: сообщение WM_LBUTTONUP не ловит - при наведении на него отображается как нажатый. Может быть хук поставить? Это сообщение отредактировал(а) Ghost99 - 18.12.2011, 02:55 |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Не хук, а капчу (SetCapture). Это обычный прием при обработке drag & drop. Тогда все мышиные события будут приходить твоей кнопке, независимо от позиции мыши - пока не отпустишь.
-------------------- ... |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |