Главная страница
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.03 c
6-1141210521
illmar_kelebrant
2006-03-01 13:55
2006.07.09
Почему UDP - services отказываются работать в DLL?


15-1149949840
tesseract
2006-06-10 18:30
2006.07.09
процессорные байки.


1-1148911803
.ruslan
2006-05-29 18:10
2006.07.09
...поверх всех приложений


15-1150037181
[wl]
2006-06-11 18:46
2006.07.09
какие сайты вы посещаете чаще всего(КРОМЕ ЭТОГО)


2-1150484567
Glivera
2006-06-16 23:02
2006.07.09
Работа с екселем