Поделиться через


Метод IDirectManipulationManager::RegisterHitTestTarget (directmanipulation.h)

Регистрирует выделенный поток для проверки попадания.

Синтаксис

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

Параметры

[in] window

Дескриптор main окна приложения (обычно создается из потока пользовательского интерфейса).

[in, optional] hitTestWindow

Дескриптор окна, в котором зарегистрировано тестирование нажатия (должен быть создан из потока проверки попадания). Передайте значение nullptr, чтобы отменить регистрацию ранее зарегистрированного целевого объекта проверки попадания.

[in] type

Одно из значений из DIRECTMANIPULATION_HITTEST_TYPE. Указывает, получает ли окно пользовательского интерфейса или окно проверки попадания (или и то, и другое) сообщение о проверке попадания WM_POINTERDOWN и в каком порядке.

Возвращаемое значение

Если метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Проверка попадания обычно выполняется в потоке пользовательского интерфейса приложения. Приложение получает WM_POINTERDOWN сообщение, в котором выполняется проверка попадания. Если требуется манипуляция, метод SetContact вызывается в одном или нескольких окнах просмотра. Приложение может использовать метод RegisterHitTestTarget , чтобы делегировать эту ответственность за тестирование попадания отдельному потоку проверки попадания.

После успешной регистрации выделенного целевого объекта проверки попадания WM_POINTERDOWN сообщения обрабатываются в потоке проверки попадания. Если требуется манипуляция, например сдвиг или масштабирование, из этого потока вызывается Метод SetContact .

Если метод SetContact не вызывается из потока проверки попадания, WM_POINTERDOWN сообщения могут обрабатываться в потоке пользовательского интерфейса в зависимости от DIRECTMANIPULATION_HITTEST_TYPE, указанного во время регистрации.

Если метод SetContact не вызывается ни потоком проверки попадания, ни потоком пользовательского интерфейса, direct Manipulation игнорирует входные данные, которые затем обрабатываются в потоке пользовательского интерфейса.

Требования

   
Минимальная версия клиента Windows 8 [только классические приложения]
Минимальная версия сервера Windows Server 2012 [только классические приложения]
Целевая платформа Windows
Header directmanipulation.h

См. также раздел

IDirectManipulationManager