Главная страница
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.038 c
6-1141146769
ftpnoob
2006-02-28 20:12
2006.07.09
Организация FTP-сервера


15-1149691883
Jolik
2006-06-07 18:51
2006.07.09
Системы коллективной разработки и Delphi...


15-1150118015
Pashaaa
2006-06-12 17:13
2006.07.09
Blob Поля


2-1150726094
evgenij_
2006-06-19 18:08
2006.07.09
QReport


2-1150812270
resuS
2006-06-20 18:04
2006.07.09
модуль для работы с динамическими типами данных