компьютерный форум
Вернуться   Компьютерный форум > Программирование и вебстроительство > Программирование


Ответ
 
LinkBack Опции темы Опции просмотра
Старый 16.03.2007, 03:16   #1
Пользователи
 
Регистрация: 16.03.2007
Сообщений: 2
По умолчанию

создаю глобальный хук в в dll
в главной форме запускаю хук

есть функция GetCursorPos
для проверки написал так
WM_MOUSEMOVE:
begin
GetCursorPos(mousepos);
s := IntToStr(mousepos.X);
TextOut(GetDC(0), 10,10, PChar(s), length(s));
end;

так вот в результате пр идвижении мыши на экране отображается ее X координата
НО ... когда попадаю на рамку любого окна или на скроллбар, то событие MOUSEMOVE какбудто не происходит

в чем может быть проблема????????

========

и вот еще что интересно
при старте хука выполняю
GetWindowRect(GetDesktopWindow , Scr); //GetDesktopWindow

Scr глобальная переменная в файле этой dll

так вот когда выхожу за границы родительской формы, к которой подключена dll
например переменная Scr.Bottom становится равной "0", возвращаясь мышью на форму значение восстанавливает правильное значение "768"
если функцию выполнять при движении, то результат всегда правильный.....
WM_MOUSEMOVE:
begin
GetCursorPos(mousepos);
GetWindowRect(GetDesktopWindow , Scr); //GetDesktopWindow
s := IntToStr(Scr.Bottom);
TextOut(GetDC(0), 10,10, PChar(s), length(s));
end;

Странно все это для меня

кто нибудь откликнитесь!!!




filin23 вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
16.03.2007, 03:16
Техник
реклама
По умолчанию

Старый 16.03.2007, 10:39   #2
Пользователи
 
Регистрация: 07.12.2004
Сообщений: 783
По умолчанию

по поводу первого...
Сообщение MOUSEMOVE и не будет посылаться твоей форме, если курсор вышел за ее пределы... (это уже не ее дело...)

по поводу второго - то же самое...
ты просто реагируешь на сообщения винды...
когда сообщение не посылается, то ты и среагировать не можешь..
Andy вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 17.03.2007, 05:40   #3
Пользователи
 
Регистрация: 16.03.2007
Сообщений: 2
По умолчанию

Hook глобальный, так что сообщения мыши передаются и за формой
проблема как я понимаю в глобальных переменных, которые невозможно считать за пределами, вызывающей dll, формы.
сейчас разбираюсь с этим, но все же не понятно почему не возникает события перемещения мыши над скроллбарами и над рамкой окон... что то тут не так
filin23 вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Ответ


Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Вкл.



Текущее время: 22:43. Часовой пояс GMT.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot
Content Relevant URLs by vBSEO 3.5.0 RC2