我正在使用粗系统通过将WM_MOUSEMOVE事件直接发送到Flash窗口来控制C ++ / win32程序中的Flash影片。
适用于一个轴:
SendMessage( m_targetWindowHWND, WM_MOUSEMOVE, 0, xpos);
但我现在想发送x和y值。我知道这些包装在WM_MOUSEMOVEs lparam中。在C ++中,可以使用MAKEPOINTS或GET_X_LPARAM / GET_Y_LPARAM解压缩。
但是如何打包x和y,基本上与上面的宏相反。
我的猜测:
DWORD packed = y << 8 + x;
由于
答案 0 :(得分:5)
您正在寻找的宏是MAKELPARAM
:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms632661(v=vs.85).aspx
LPARAM WINAPI MAKELPARAM(
WORD wLow,
WORD wHigh
);
我相信它等同于MAKELONG
(同样但返回DWORD
),但是又一次......也许有一个平台,LPARAM和DWORD的定义不同。 : - /
编辑:显然LPARAM(和WPARAM!)现在都被定义为你平台上指针的大小。 “L”(长)和“W”(单词)是历史的:What are the definitions for LPARAM and WPARAM?
答案 1 :(得分:2)
MAKELPARAM(x, y)