![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SendMessage, как мне объеденить координаты в одно число? [D6, WinXP]
3abaBHoe JIaMo © (2004-02-04 22:05:00)Есть такая команда, как SendMessage, ну вы знаете ;)
Вот мне надо заставить работать это:
SendMessage(MyHandle, WM_LBUTTONDOWN, 0, Position);
что нужно сделать с переменной Position, если нужные мне координаты это X и Y.
Я уже нашел что:
WM_LBUTTONDOWN
fwKeys = wParam;// key flags
xPos = LOWORD(lParam);// horizontal position of cursor
yPos = HIWORD(lParam);// vertical position of cursor
Что значит два числа в lParam? Это как так запихать?
Polevi (2004-02-06 16:22:00) [1]MAKELONG
Юрий Зотов (2004-02-06 11:01:00) [2]Пожалуй, скоро дойдет то того, что операцию A+B народ не сможет выполнить без библиотечной функции Add(A, B). Да и ее будут искать на форумах.
Anatoly Podgoretsky (2004-02-05 23:42:00) [3]Ну нельзя же без Дельфи писать, конечно можно, но очень тяжело.
3abaBHoe JIaMo (2004-02-05 23:18:00) [4]Спасибо конечно, был бы у меня еще хелп по вин апи я бы тут не сидел. А шоб присвоить мне лично пришлось найти команду MakeLParam(X, Y) - ВОТ ЧТО Я ХОТЕЛ УЗНАТЬ.
тоесть Position (которая Int64) надо присвоить MakeLParam(X, Y) и все.
Zergling (2004-02-05 06:29:00) [5]>> То есть так и присвоить: ?
Попробуй, узнаешь!
Wizard_Ex (2004-02-05 06:26:00) [6]То есть так и присвоить: ?
Position:=(Y shl 16) or X
сенкс
dr Tr0jan (2004-02-05 04:18:00) [7]А Хэлп по WinAPI сложно почитать?
Позиция передается пременной lParam, размер которой 32-бита. Т.к. она очень велика - 0..4294967295, то программисты решили ее разбить на два "слова" (младшее и старшее), каждое по 16 бит, т.е. 0..65535. Размер одного слова позволяет хранить в себе довольно большое число, например горизонталную позицию курсора. Таким образом:xPos = LOWORD(lParam); // - младшее слово параметра lParam;
yPos = HIWORD(lParam); // старшее слово параметра lParam;
Юрий Зотов (2004-02-04 22:09:00) [8]var
X, Y: word;
...
(Y shl 16) or X