Форум: "Начинающим";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];
ВнизПеремещение мыши относительно координат чужого окна Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.01 c