Официальный сайт студ.городка НГТУ
Программирование и БД » [C++ MFC] обработка сообщений 

#1  30.05.06 22:49

[C++ MFC] обработка сообщений

Такая ситуация: есть приложение у него соответственно есть рабочая облась (как ни странно :) ). Небходимо отследить премещение мыши вне этой области (например на панели или меню).
Вопрос: как это сделать?

P.S. В общем суть задачи состоит в следующем. необходимо реализовать добавление элементов в рабочую область при помощи панели инструментов.
Т.е. есть допустим у нас панель, каждой кнопке соответствует свой элемент. Принажатии на кнопку под курсором появляется изображение элемента. Далее перетаскиваем его (элемент) в рабочую облась, отпускаем кнопку мыши и необходимое устройство добавляется в рабочую область.
Кто что думает по этому поводу?

Offline

#2  31.05.06 11:07

Re: [C++ MFC] обработка сообщений

Есть специальные функции для работы с drag and drop, я так понимаю тебе это надо?
Хотя впринципе при желании можешь сделать так:
Ловишь на товей панельке, на кнопке скажем WM_LBUTTONDOWN (нажатие левой кнопки мыши)
Делаешь SetCapture() в этом окне, тем самым указывая, что все сообщения от мыши будут теперь обробатываться этим окном, даже если мышь не будет в пределах окна.
Дальше меняешь курсор на новый курсор с твоим элементом.
Как только поймал сообщение WM_LBUTTONUP (кнопку мыши отпустили)
проверяешь если глобальные координаты мыши поподают в глобальные координаты окна с твоей рабочей областью то добавляешь этот элемент в свою рабочую облатсь. И делаешь ReleaseCapture() - тоесть отпускаешь мышь от окна с панелькой.

Исправлено MadSlayer (31.05.06 11:08)

Offline

#3  31.05.06 11:24

Re: [C++ MFC] обработка сообщений

за SetCapture() и ReleaseCapture() спасибо.
а что за специяальные функци для работы с драг энд дроп?

Offline

#4  31.05.06 11:37

Re: [C++ MFC] обработка сообщений

_|ex написал(а):

а что за специяальные функци для работы с драг энд дроп?

Ну я если честно не помню уже как там с ними работать ибо давно не занимался. Возможно правда что они только для работы с файлами. Погляди в MSDN-е в разделе Shell Functions, про drag and drop там вроде ничего сложного не было. Ну и в MFC что то было такое у CWnd были методы над этими функциями типа DragAcceptFiles и т.п.
Я щас это дело на память не вспомню, а разбираться времени нет.
Не получиться - всегда можно сделать, как я описал сначала )

Offline

Программирование и БД » [C++ MFC] обработка сообщений 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.099 сек.
Выполнено 11 запросов.