Метод 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 |