IDirectManipulationManager::RegisterHitTestTarget 方法 (directmanipulation.h)

注册用于命中测试的专用线程。

语法

HRESULT RegisterHitTestTarget(
  [in]           HWND                            window,
  [in, optional] HWND                            hitTestWindow,
  [in]           DIRECTMANIPULATION_HITTEST_TYPE type
);

参数

[in] window

通常从 UI 线程) 创建的 (main应用窗口的句柄。

[in, optional] hitTestWindow

应从命中测试线程) 创建在其中注册命中测试 (窗口的句柄。 传入 nullptr 以取消注册以前注册的命中测试目标。

[in] type

DIRECTMANIPULATION_HITTEST_TYPE中的值之 。 指定 UI 窗口或命中测试窗口 (或两者) 接收命中测试 WM_POINTERDOWN 消息,以及按什么顺序接收。

返回值

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

备注

命中测试通常在应用程序 UI 线程上执行。 应用程序 收到WM_POINTERDOWN消息 ,对其执行命中测试。 如果需要操作,则会在一个或多个视区上调用 SetContact 。 应用程序可以使用 RegisterHitTestTarget 方法将此命中测试责任委托给单独的命中测试线程。

成功注册专用命中测试目标后, WM_POINTERDOWN 在命中测试线程上处理消息。 如果需要操作(如平移或缩放),则从此线程调用 SetContact

如果未从命中测试线程调用 SetContact则可能会在 UI 线程上处理WM_POINTERDOWN消息,具体取决于注册期间指定的 DIRECTMANIPULATION_HITTEST_TYPE

如果命中测试线程或 UI 线程未调用 SetContact则直接操作 将忽略随后在 UI 线程上处理的输入。

要求

   
最低受支持的客户端 Windows 8 [仅限桌面应用]
最低受支持的服务器 Windows Server 2012 [仅限桌面应用]
目标平台 Windows
标头 directmanipulation.h

请参阅

IDirectManipulationManager