Мышь из свернутого окна

Общие вопросы, не зависящие от языка реализации.

Модераторы: Duncon, Hawk, Romeo, Eugie

Ответить
pots
Сообщения: 43
Зарегистрирован: 14 июн 2006, 14:18

Доброе утро :)
Хочу организовать пользовательский интерфейс следующим образом: при определенном состоянии программы, выводить на экран определенную, заранее нарисованную картинку. Хэндл экрана я получаю GetDC(0), таким образом окно мне совсем не нужно, поэтому я его либо сворачиваю, либо скрываю вовсе.
Теперь возникает вопрос о мыши :( Можно ли как то получать от нее сообщения или, на худой конец, как то узнавать ее состояние из свернутых или скрытых окон?
Спасибо :)
Аватара пользователя
LAngel
Сообщения: 277
Зарегистрирован: 30 мар 2005, 08:19
Откуда: Ульяновск
Контактная информация:

Узнать текущее положение курсора можно просто: GetCursorPos() из user32.dll
С уважением, Lost Angel...
pots
Сообщения: 43
Зарегистрирован: 14 июн 2006, 14:18

Это понятно :) А как узнать нажата ли кнопка? Сообщение то мышь пошлет кому угодно, только не свернутому окну :(
BBB
Сообщения: 1298
Зарегистрирован: 27 дек 2005, 13:37

pots писал(а):Это понятно :) А как узнать нажата ли кнопка? Сообщение то мышь пошлет кому угодно, только не свернутому окну :(
Может быть, в какой-то момент (только не ясно - в какой) "закаптурить" мышу? (функция SetCapture)
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Если её закэпчить, то клики не будут доходить до тех окон, по которым пользователь в текущий момент кликает. Я правильно понимаю, pots, требуется чтобы мыша функционировала, как будто приложения нет, но при этом хочется, чтобы приложение постоянно знало о том где мыша. Это можно решить, контролирую состояние мышки в хэндлере таймера.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Hawk
Сообщения: 216
Зарегистрирован: 17 фев 2004, 14:52
Откуда: СПб
Контактная информация:

SetCapture не пойдет он работает только для foreground windows. И если пользователь кликнет по другому окну, capture уйдет туда (так что запретить функционировании мыши в любом случае не получится, хочется этого или нет). Ну дла единственное это таймер или опять же старые добрые хуки. С которыми все уже замучались =).
Аватара пользователя
Stealth Legion
Сообщения: 13
Зарегистрирован: 21 июл 2007, 15:10
Откуда: Преисподня

Hawk писал(а):SetCapture не пойдет он работает только для foreground windows. И если пользователь кликнет по другому окну, capture уйдет туда (так что запретить функционировании мыши в любом случае не получится, хочется этого или нет). Ну дла единственное это таймер или опять же старые добрые хуки. С которыми все уже замучались =).
По идеии - это стандартным путем (а может и вовсе) сделать невозможно, так как сообщения обрабатываются от активного окна либо приложения (так как окно в приложении не обязательно)...поэтому, если окно свернуто, то сообщения от мыши к нибу идти не будут...вроде бы...
Ответить