Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Некоторые сведения связаны с предварительно выпущенным продуктом, который может быть существенно изменен до его коммерческого выпуска. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых в отношении информации, предоставленной здесь.]
Регистрирует указанное окно или текущий поток в качестве сенсорной панели, поддерживающей систему.
Синтаксис
WINUSERAPI
BOOL
WINAPI
RegisterTouchpadCapableWindow(
_In_ HWND hWnd,
_In_ BOOL fEnable);
WINUSERAPI
BOOL
WINAPI
RegisterTouchpadCapableThread(
_In_ BOOL fEnable);
Параметры
RegisterTouchpadCapableWindow
- hWnd
-
Дескриптор окна для регистрации или отмены регистрации в качестве сенсорной панели.
- fEnable
-
TRUE , чтобы зарегистрировать окно в качестве сенсорной панели; Значение FALSE для отмены регистрации.
RegisterTouchpadCapableThread
- fEnable
-
TRUE , чтобы зарегистрировать текущий поток в качестве сенсорной панели; Значение FALSE для отмены регистрации.
Возвращаемое значение
Если функция выполняется успешно, возвращается ненулевое значение.
Если функция выполняется неудачно, возвращается нулевое значение. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError. Регистрация может завершиться ошибкой, если система не поддерживает регистрацию в качестве сенсорной панели или если пытается отменить регистрацию потока и поток в настоящее время не зарегистрирован как способный.
Замечания
Зарегистрируя в качестве сенсорной панели, следующие системные функции изменятся:
- GetPointerDevices теперь будет включать сенсорные панели в свой список устройств.
- GetCurrentInputMessageSource для сообщений мыши с сенсорной панелью будет возвращать IMDT_TOUCHPAD в качестве типа устройства вместо IMDT_MOUSE.
- RegisterPointerDeviceNotifications будет создавать сообщения для сенсорной панели (как прибытие устройства, так и отъезд, а также контакты в диапазоне или вне диапазона).
- Окно (или все окна в потоке) получит WM_POINTER сообщения для жестов сенсорной панели с двумя пальцами (сдвига и масштабирования).
- Если эти сообщения перенаправляются в DefWindowProc, они будут преобразованы в сообщения с колесиком мыши так же, как система делает сегодня для окон и потоков, не поддерживающих сенсорной панели.
RegisterTouchpadCapableWindow — регистрация окна — "последняя победа вызывающего средства" — возможность сенсорной панели окна включена или отключена на основе последнего вызова API. Ожидается, что владелец окна будет регистрироваться как способный во время инициализации. Компоненты не должны регистрировать окно как способное, если они не могут контролировать способ обработки WM_POINTER сообщений, которые он будет получать соответственно.
RegisterTouchpadCapableThread — система отслеживает, сколько раз поток зарегистрирован как способный, поэтому, если поток зарегистрирован как способный, он должен быть отменен, если он больше не нужен. Поток может использовать RegisterTouchpadCapableThread для временного регистрации в качестве способного вызова API- интерфейсов с зависимым поведением, а затем отменять регистрацию, чтобы сохранить исходное состояние потока.
Так как GetPointerDevices и GetCurrentInputMessageSource не принимают окно в своих параметрах, их поведение будет изменяться только в том случае, если весь поток поддерживает сенсорной панели, чтобы избежать проблем совместимости при выборе в одном окне в другом потоке.
Это важно
Поведение некоторых параметров сенсорной панели системы реализуется в API контекста взаимодействия для выполнения распознавания жестов на входных данных указателя. К ним относятся, были ли сдвиги и (или) масштабирование явно отключены, а также направление движения содержимого для сдвига. В будущих обновлениях системы также могут быть представлены дополнительные функциональные возможности. Поэтому настоятельно рекомендуется использовать API контекста взаимодействия для распознавания жестов при регистрации в качестве сенсорной панели и получения входных данных указателя напрямую, чтобы пользователь испытывал единообразное поведение во всех приложениях. Если эти API не используются, важно запрашивать параметры сенсорной панели пользователя и уважать те, которые связаны с распознаванием жестов, если применимо к пользовательскому интерфейсу приложения. При внедрении новых системных параметров потребуется обновление приложений, однако при использовании API контекста взаимодействия эти новые параметры будут автоматически работать должным образом.
В частности, следует использовать новый ProcessPointerFramesInteractionContext2 или BufferPointerPacketsInteractionContext2 , так как они предоставляют полные полезные данные указателя в контекст взаимодействия, а не только POINTER_INFO. Будущие улучшения распознавания жестов могут принимать во внимание эту информацию. Класс WinRT PhysicalGestureRecognizer использует эти API внутренне.
Требования
| Требование | Ценность |
|---|---|
| Минимальный поддерживаемый клиент | Windows 11 [только классические приложения] |
| Минимальный поддерживаемый сервер | Ни одна версия не поддерживается |
| Header | Winuser.h (include Windows.h) |
| Библиотека | User32.lib |
| DLL | User32.dll (порядковый номер 2689 для RegisterTouchpadCapableWindow, порядковый номер 2688 для RegisterTouchpadCapableThread) |