2

这是下面的整体代码:

LRESULT WmPointerAPI::WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HRESULT hr;
POINTER_INFO pointerInfo = {};

UNREFERENCED_PARAMETER(hr);

switch (message)
{
case WM_POINTERDOWN:
    // Get frame id from current message
    if (GetPointerInfo(GET_POINTERID_WPARAM(wParam), &pointerInfo))
    {

我专注于:

if (GetPointerInfo(GET_POINTERID_WPARAM(wParam), &pointerInfo))

我目前正在使用 Leap Motion 技术,这是一种 3D 传感器,可将坐标插入我的应用程序。问题是,我不知道如何将我自己的“坐标”插入 wParam,以便它接收我的坐标,而不是来自光标/触摸屏。

如何使用我自己的屏幕坐标通过 wParam 注入或模拟触摸?

4

1 回答 1

2

参数

坐标在 中lParam,请参见此处

Use the following macros to retrieve the physical screen coordinates of the point: 
* GET_X_LPARAM(lParam): the x (horizontal point) coordinate. 
* GET_Y_LPARAM(lParam): the y (vertical point) coordinate.

您可以使用宏创建新lParam值。MAKELPARAM例子:

WORD screenX = 345; 
WORD screenY = 234;
LPARAM testLParam = MAKELPARAM(screenX, screenY);

参数

如果您还想创建一个wParam,那么您应该反向工程其描述wParam中列出的宏读取的哪些位,并使用位操作创建您自己的值。例如,GET_POINTERID_WPARAM读取. 宏MAKEWPARAM也可以派上用场。wParamWORDwParam

于 2013-08-27T20:41:11.033 回答