Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо