Форум: "Потрепаться";
Текущий архив: 2003.08.14;
Скачать: [xml.tar.bz2];
ВнизWM_LBUTTONUP Найти похожие ветки
← →
Иксик (2003-06-14 14:47) [0]Я ужасно извиняюсь за тупой вопрос, но я никак не пойму в чем дело.
Мне нужно посылать чужому окну сообщение WM_LBUTTONUP с координатами в lparam.
Я делаю так:
var
XY : record
case tag: Boolean of
True: (X,Y:word);
( XY: LongWord)Я ужасно извиняюсь за тупой вопрос, но я никак не пойму в чем дело.
Мне нужно посылать чужому окну сообщение WM_LBUTTONUP с координатами в lparam.
Я делаю так:
var
XY : record
case tag: Boolean of
True: (X,Y:word);
False: (XY: LongWord); //с integer тоже не хляет
end;
begin
XY.X:=66;
XY.Y:=55;
sendmessage(strtoint(edit2.Text),WM_LBUTTONUP,0,XY.XY);
Он первую координату берет, а второй дает левое значение.
В чем тут дело?
← →
Иксик (2003-06-14 15:22) [1]Блин, получилось, использовал MakeLParam.
Но я все равно не понял что было не правильно! :) Есть идеи?
← →
Юрий Зотов (2003-06-14 17:18) [2]XY.XY - а как это вообще компилируется? Не должно.
Смотрим описание lParam для WM_LBUTTONUP:
xPos = LOWORD(lParam); // horizontal position of cursor
yPos = HIWORD(lParam); // vertical position of cursor
То есть, X и Y надо упаковать в общие 4 байта, в виде младшего и старшего слова соотвественно. Это и делает MakeLParam. Или можно ручками: (XY.Y shl 16) + XY.X
И не надо вариантной записи, достаточно просто word"овых полей.
← →
HolyGlory (2003-06-14 17:45) [3]
> XY.XY - а как это вообще компилируется? Не должно.
Почему? только не case tag:Boolean, a просто case bollean
← →
Юрий Зотов (2003-06-14 18:55) [4]Да, скомпилируется. Сорри, невнимательно посмотрел. Но сказанного это все равно не отменяет.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.08.14;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c