Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как узнать события мыши вне окна

9.7K
14 ноября 2007 года
SpeedShifter
67 / / 07.10.2007
Проблема в том, что не знаю как обнаружить события мыши вне она.
Мне нужно сделать растяжимый прямоугольник для выделения, но если отпустить LBUTTONUP вне моего окна то т.к. сообщение WM_LBUTTONUP не приходит, это приводит к неприятным последствиям.
Помогите плиз.
9.7K
14 ноября 2007 года
SpeedShifter
67 / / 07.10.2007
Еще бы хотелось знать обо всех событиях мыши независимо от того активно ли мое окно.
397
14 ноября 2007 года
SergPas
527 / / 03.02.2007
Для того, чтобы отлавтивать сообщения системы, используют глобальные ловушки (Hooks). Код ловушки должен находится в DLL файле, размещённом лучше всего в системном каталоге (%systemroot%). В этом случае операционная система подгружает код DLL в адресное пространство
Устанавливается hook функцией SetWindowsHookEx.
 
Код:
HHOOK SetWindowsHookEx(
    int idHook,
    HOOKPROC lpfn, 
    HINSTANCE hMod,
    DWORD dwThreadId    
   );


Первый параметр - тип ловушки. Для мышки может быть WH_GETMESSAGE
Второй параметр этой функции есть указатель на функцию обратного вызова GetMsgProc, в которой и будет осуществляться обработка перехваченного сообщени.
Третий параметр- значение, возвращаемое функцией LoadLibrary.
А последний параметр должен быть равен нулю.
Прототип функции GetMsgProc
 
Код:
LRESULT CALLBACK GetMsgProc(
    int code,  
    WPARAM wParam, 
    LPARAM lParam  
   );

где lParam указатель на структуру MSG, в которой и содержатся все необходимые сведения о сообщении.
За более подробной информацией обращайтесь к MSDN
534
15 ноября 2007 года
HarryAxe
448 / / 19.01.2006
Цитата: SpeedShifter
Мне нужно сделать растяжимый прямоугольник для выделения, но если отпустить LBUTTONUP вне моего окна то т.к. сообщение WM_LBUTTONUP не приходит, это приводит к неприятным последствиям.
Помогите плиз.


SetCapture() при обработке WM_LBUTTONDOWN и ReleaseCapture() на WM_LBUTTONUP. Во время захвата сообщения от мыши всегда приходят в очередь окна, дескриптор которого указан в качестве параметра SetCapture().

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог