Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > SetCapture


Автор: Temnozor 1.7.2002, 12:12
Столкнулся с такой проблемой.
Для диалога (неглавного) моей программы вызываю SetCapture().
И превосходно принимаю движения мышой OnMouseMove().
Но при выходе за пределы всех окон моей проги (на территорию чужих окон) OnMouseMove перестают поступать. Это, мягко говоря, не то что я ожидал.
Мне надо знать положение курсора мыши в каждый момент времени по всему экрану.
Я в корне не прав или должно все это работать?
Или надо пойти другим путем?
P.S. Ну не Hook'ами же в конце концов мне движения мышака ловить?!
P.S.2. Щас дошло только: по таймеру узнавать текущее положение мыши. Ой не нравится мне эта идея... :sneaky2

Автор: Baa 1.7.2002, 14:17
If the mouse cursor is over a window created by another thread, the system will direct mouse input to the specified window only if a mouse button is down.

Проверяем: зажимаем кнопку мыши в нашем диалоге и тащим за пределы окна :) ой, работает ;-)

Автор: Temnozor 5.7.2002, 08:43
Мда. Thanks. Действительно.
Ну я не могу юзверя заставлять кнопку удерживать...
Придется по таймеру брать позицию курсора грызуна...

Автор: TwoK 5.7.2002, 09:34
А почему бы не хук?

Правда, я тут как-то хук на мышь написал... И драйвера моего NetScroll+ приказали долго жить. То есть вопрос стоял так: либо дрова NetScroll, либо хук :)

Автор: Temnozor 5.7.2002, 09:45
С хуками круто конечно, но разбиться несколько дольше (время!время!) и никогда не знаешь откуда стрельнет.

Автор: Baa 5.7.2002, 12:24
Эмулируй удержание кнопы мыши ;-) правда это выглядит, как мочить тараканов из дробовика :\ :rolleyes
З.Ы.
Притом, чтобы другое окно не стало активным, зажать кнопку надо на своем окне %)


Автор: Fantasist 6.7.2002, 15:29
Совершенно верно. Либо драйвер либо хук. В том смысле, что либо пиши драйвер отслеживающий мышь либо ставь хук. А так никакие тебе сообщения виндос присылать не будет. Таймер это, конечно, круто, но сам понимаешь... Хук ведь для того и придумали. А если времени нет, так у меня, пожалуй, парочка готовых есть.

Автор: Wowa 6.7.2002, 17:57
Цитата(Temnozor @ 05.7.2002, 07:43)
ну я не могу юзверя заставлять кнопку удерживать...

а если эмулировать?

Автор: Baa 6.7.2002, 18:17
Цитата(Admin @ 06.7.2002, 18:57)
а если эмулировать?

То он больше нигде не кликнет ;\
Или если вдруг сообщения пройдут, в чем я сомневаюсь, других аномалий найдется уйма...вобщем, это не решение.


Автор: Temnozor 8.7.2002, 09:11
Лады. Сделаю способом до которого руки дойдут.
Спасибо всем.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)