안녕하세요..영원한 델초보 어린왕자입니다. Message의 LParam으로 좌표값을 넘겨주고 받고 싶은데요. 어떤 형식으로 해야 하나요? SendMessage(hHandle, WM_USER, 0, ...); with Message do begin Point := .. LParam; end;
이광수
•
2002.01.25 23:30
lParam := MakeLong( smallint(point.x), smallint(point.y) );
post or Sendmessage
...
5782_Click
•
2002.01.25 21:26
Point사용법은요..
변수 선언시..
Point : ^integer ; <= 자료형 앞에 꺽쇠표시...
Point := @LP...
어린왕자A
•
2002.01.25 21:39
약간 이상한 듯..
좌표값..TPoint를 LParam으로 주고 받고 할라구 그러는데요.
y값은 어떻게 하나요???...
lParam := MakeLong( smallint(point.x), smallint(point.y) );
post or Sendmessage
쓸때는
point.x := smallint( LOWord(LParam) );
point.y := smallint( HIWord(LParam) );
대충 맞지만 코드는 확인 안된겁니다.
smallint로 변환 한것은 signed, unsigned의 문제때문에 쓴것입니다.
좌표가 마이너스 값도 유지시켜야 하지요.
제가 기억하기로는 unsigned int 16(word)를
그냥 signed integer 32(integer)로
변환하면 부호가 날라가게 되는 걸로 압니다.
따라서 같은 크기의 signed로 바꾸고 써야겠죠..
아닐지도 ....
혹 다시한번 캐스팅해서 쓰셔야 할지도