Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.09;
Скачать: CL | DM;

Вниз

Перемещение мыши относительно координат чужого окна   Найти похожие ветки 

 
HF-Trade ©   (2006-06-18 17:22) [0]

Здравствуйте господа. Как реализовать вот такой сабж.
(Мне надо чтоб указатель мыши переместился в окне(чужом) относительно его координат.)
Пишу так -

Var
XXX: Hwnd;
X,Y: Integer;
MyMouse: TPoint;

Begin
XXX:=FindWindow("XXXXX",0);

GetCursorPos(MyMouse);

Windows.ScreenToClient(XXX,MyMouse);

X:=MyMouse.X;
Y:=MyMouse.Y;

PostMessage(XXX,WM_MOUSEMOVE,0,MakeLong(X,Y));

end;

???
Что не правильно делаю?


 
GanibalLector ©   (2006-06-18 19:14) [1]

Не понял условие задачи.
Но все же попробую промедитировать :


 GetCursorPos(P);
 P:=ScreenToClient(P); // !!!


 
HF-Trade ©   (2006-06-18 19:36) [2]

Есть окно ХХХ, я получаю координаты курсора (X,Y), в этом окне. Затем мне нужно чоб при нажатии на кнопку -
Окно ХХХ стало поверх всех, а курсор переместился в точку Х,Y.

Если делать так -

SetCursorPos(X,Y)

то курсор перемещаеться относительно координат экрана, а мне надо именно окна ХХХ...


 
Юрий Зотов ©   (2006-06-18 19:54) [3]

> HF-Trade ©   (18.06.06 19:36) [2]

А где Вы перемещаете курсор? В Вашем коде он где был, там и остается.


 
HF-Trade ©   (2006-06-18 20:23) [4]

Прошу прощения - так тоже пробовал

PostMessage(XXX,WM_SETCURSOR,0,MakeLong(X,Y));

...


 
HF-Trade ©   (2006-06-19 15:33) [5]

А да, забыл совсем -
Координаты я получаю отдельно... тут просто все в мешанине кинул -

Var
XXX: Hwnd;
X,Y: Integer;
MyMouse: TPoint;

При создании формы -

XXX:=FindWindow("XXXXX",0);

Получаю координаты (Хот Кей Ctrl+A в TMainMenu) -

GetCursorPos(MyMouse);
Windows.ScreenToClient(XXX,MyMouse);
X:=MyMouse.X;
Y:=MyMouse.Y;

При нажатии на кнопку -

PostMessage(XXX,WM_MOUSEMOVE,0,MakeLong(X,Y));

Пробовал и так -

PostMessage(XXX,WM_SETCURSOR,0,MakeLong(X,Y));

Курсор остаеться на на месте....


 
begin...end ©   (2006-06-19 15:49) [6]

> HF-Trade ©   (18.06.06 19:36) [2]

> Если делать так -
> SetCursorPos(X,Y)
> то курсор перемещаеться относительно координат экрана, а
> мне надо именно окна ХХХ...

Значит, нужно перевести координаты относительно окна в экранные координаты. Для этого есть функция ClientToScreen (модуль Windows).

А причём здесь WM_SETCURSOR, совершенно неясно. Это вообще нотификационное сообщение, и для изменения позиции курсора оно служить не может.



Страницы: 1 вся ветка

Текущий архив: 2006.07.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.048 c
2-1150676695
lamerazoid
2006-06-19 04:24
2006.07.09
Выполнение произвольного кода


15-1149807962
Неизвестный!!!
2006-06-09 03:06
2006.07.09
Оцените мой сайт!


1-1147980331
S@shka
2006-05-18 23:25
2006.07.09
Как корректно заточить прогу под WindowsXP


15-1149861807
Vlad
2006-06-09 18:03
2006.07.09
Сходства не находите? :-)


1-1148895763
Jolik
2006-05-29 13:42
2006.07.09
Имя процедуры...