LoWord, HiWord, LParam

0

Witam :)

Na wstępię zaznaczę że szukałem odpowiedzi na moje pytanie zarówno w helpie jak i na forum, ale niczego nie znalazłem :(

No to teraz przechodzę do rzeczy :P

Podczas zabawy komunikatami można spotkać twór o nazwie "LParam", który zawiera informacje o położeniu kursora mychy. "Odkodowanie" tych informacji jest w sumie banalne - wystarczy użyć funkcji LoWord i HiWord, jako parametr podając liczbę zawartą w owym LParam.
Tylko że ja chcę to zrobić w drugą stronę, a nie za bardzo wiem jak :/

Mam dane współrzędne kursora i chcę je "wpakować" do LParam, aby potem użyć czegoś takiego:
PostMessage(blabla, WM_LBUTTONDOWN, 1, LParam);

Więc pytanie brzmi: (w sumie w nim mieści się cały sens mojego przydługawego postu :P )
jak zamienić współrzędne kursora na wartość LParam?

0

problem jest banalnie prosty
hiWord przeciez odczytuje starsze a LoWord mlodsze slowo. Wrzucasz do zmiennej integer odpowiednie slowo, potem przesuwasz bity o 16 w lewo jesli to ma byc HiWord, a jesli LoWord to obliczasz sume logiczna ze zmiennej tak aby starsze slowo mialo wartosci 1 a mlodsze 0, a nastepnie przepuszczasz oba przez instrukcje lub albo po prostu dodajesz je do siebie.

0

POINTS(LPARAM).x:=123;
POINTS(LPARAM).y:=678;

Albo (jak opisano wyżej)
LPARAM:=(y shl 16)or x;

Lub
LPARAM:=y*65536+x;

1 użytkowników online, w tym zalogowanych: 0, gości: 1