Страница 1 из 1

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

Добавлено: 20 дек 2006, 10:41
pots
Доброе утро :)
Хочу организовать пользовательский интерфейс следующим образом: при определенном состоянии программы, выводить на экран определенную, заранее нарисованную картинку. Хэндл экрана я получаю GetDC(0), таким образом окно мне совсем не нужно, поэтому я его либо сворачиваю, либо скрываю вовсе.
Теперь возникает вопрос о мыши :( Можно ли как то получать от нее сообщения или, на худой конец, как то узнавать ее состояние из свернутых или скрытых окон?
Спасибо :)

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

Добавлено: 20 дек 2006, 14:56
LAngel
Узнать текущее положение курсора можно просто: GetCursorPos() из user32.dll

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

Добавлено: 20 дек 2006, 19:28
pots
Это понятно :) А как узнать нажата ли кнопка? Сообщение то мышь пошлет кому угодно, только не свернутому окну :(

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

Добавлено: 21 дек 2006, 10:43
BBB
pots писал(а):Это понятно :) А как узнать нажата ли кнопка? Сообщение то мышь пошлет кому угодно, только не свернутому окну :(
Может быть, в какой-то момент (только не ясно - в какой) "закаптурить" мышу? (функция SetCapture)

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

Добавлено: 21 дек 2006, 13:42
Romeo
Если её закэпчить, то клики не будут доходить до тех окон, по которым пользователь в текущий момент кликает. Я правильно понимаю, pots, требуется чтобы мыша функционировала, как будто приложения нет, но при этом хочется, чтобы приложение постоянно знало о том где мыша. Это можно решить, контролирую состояние мышки в хэндлере таймера.

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

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

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

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