C++ WM_鼠标移动-包装x和y位置

C++ WM_鼠标移动-包装x和y位置,c++,winapi,visual-c++,C++,Winapi,Visual C++,我使用一个粗糙的系统,通过将WM_MOUSEMOVE事件直接发送到Flash窗口,从C++/win32程序控制Flash电影 它适用于一个轴: SendMessage( m_targetWindowHWND, WM_MOUSEMOVE, 0, xpos); 但是我现在想发送x和y值。我知道这些都装进了WM_MOUSEMOVEs LPRAM。在C++中,可以用MaxPoT或GETXXYLPAARAM/GETYYYLPARAM解包。 但是我如何包装x和y,基本上与上面的宏相反 我猜: DWORD

我使用一个粗糙的系统,通过将WM_MOUSEMOVE事件直接发送到Flash窗口,从C++/win32程序控制Flash电影

它适用于一个轴:

SendMessage( m_targetWindowHWND, WM_MOUSEMOVE, 0, xpos);
但是我现在想发送x和y值。我知道这些都装进了WM_MOUSEMOVEs LPRAM。在C++中,可以用MaxPoT或GETXXYLPAARAM/GETYYYLPARAM解包。 但是我如何包装x和y,基本上与上面的宏相反

我猜:

DWORD packed = y << 8 + x;
DWORD packed=y使用:


您要查找的宏是
MAKELPARAM

我相信它相当于
MAKELONG
(同样的事情,但返回一个
DWORD
),但是再一次……也许有一个平台,其中LPARAM和DWORD的定义不同:-/



编辑:显然,LPARAM(和WPARAM!)现在都被定义为平台上指针的大小。“L”(长)和“W”(字)是历史性的:

谢谢。我知道这必须很简单!它们是16位字,移位16。
MAKELPARAM(x, y)
LPARAM WINAPI MAKELPARAM(
    WORD wLow,
    WORD wHigh
);