Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Некоторые сведения связаны с предварительно выпущенным продуктом, который может быть существенно изменен до его коммерческого выпуска. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых в отношении информации, предоставленной здесь.]
Сообщает системе о том, находится ли содержимое указанного окна в состоянии инерции.
Синтаксис
WINUSERAPI
BOOL
WINAPI
ReportWindowContentInertia(
HWND hWnd,
BOOL bStartInertia);
Параметры
- hWnd
-
Дескриптор окна, состояние инерции содержимого которого сообщается.
- bStartInertia
-
TRUE , чтобы сообщить о том, что содержимое окна вступило в инерцию; FALSE , чтобы сообщить о том, что инерция остановлена.
Возвращаемое значение
Если функция выполняется успешно, возвращается ненулевое значение.
Если функция выполняется неудачно, возвращается нулевое значение.
Замечания
Содержимое окна "в инерции", если оно продолжает перемещаться после обработки входными данными после завершения входного потока. Сообщите об этой инерции, чтобы входные данные сенсорной панели могли правильно остановить это движение при необходимости.
Если окно находится в инерции, система изменяет способ реагирования на входные данные сенсорной панели:
- Вскоре после поступления ввода новой сенсорной панели система отправит WM_STOPINERTIA в окно. Приложение должно реагировать на это сообщение, остановив движение его содержимого, но не обязательно переходя из состояния "в инерции", если он имеет оптимизацию для повторяющихся жестов, манипулируя тем же содержимым (например, удар-тестирование входных данных в пользу инерции или запоминая существующую скорость содержимого).
- Если система определяет, что входные данные сенсорной панели пытаются остановить движение содержимого, система отправит WM_ENDINERTIA в окно. Приложение должно реагировать на это сообщение, остановив движение его содержимого и выход из состояния "в инерции".
Примеры сценариев:
- Пользователь выполняет быстрый касание: WM_ENDINERTIA отправляется. Входные данные мыши не создаются — касание приводит только к окончанию инерции.
- Пользователь держит пальцем на сенсорной панели, а затем поднимает его: WM_STOPINERTIA за которым следует WM_ENDINERTIA.
- Пользователь выполняет быстрый двухфакторный жест: без инерционных сообщений. Повторяющиеся жесты предназначены для обработки без необходимости остановки содержимого.
- Пользователь держит пальцем (или два) на сенсорной панели, а затем выполняет жест с двумя пальцами: WM_STOPINERTIA. Задавая место перед выполнением жеста, возможно, пользователь попытался остановить содержимое.
Хотя в большинстве случаев получение WM_STOPINERTIA следует либо WM_ENDINERTIA , либо другой жест сенсорной панели, он не гарантируется. Если приложения реализуют специальное состояние содержимого при получении WM_STOPINERTIA, это состояние должно быть завершено через некоторое время. Аналогичным образом , WM_ENDINERTIA может не обязательно предшествовать WM_STOPINERTIA если поток ввода сенсорной панели короткий.
Для правильной обработки входных данных сенсорной панели важно отчеты о инерции. Если содержимое окна находится в инерции, и оно не сообщается системе, то касание сенсорной панели приведет к нормальному поведению щелчка (мышь слева и слева). Приложение может в конечном итоге рассматривать этот ввод мыши как взаимодействие с содержимым в движении, возможно, в результате выполнения действия, которое пользователь не намеревался.
Для инерции, вызванной вводом касания или пера, система не должна специально обрабатывать входные данные относительно инерции, так как окно, содержимое которого находится в инерции, обычно совпадает с тем, что получает последующие входные данные. Для ввода сенсорной панели, наоборот, система принимает решение, прежде чем приложение получает любые входные данные. Отчеты об инерции, вызванной сенсорным вводом или пером, по-прежнему рекомендуется, чтобы, если пользователь пытается остановить инерцию с сенсорной панелью, то ожидаемое поведение происходит.
Система отслеживает только одно окно в инерции. Если инерция уже активна, когда этот API вызывается, чтобы сообщить об инерции, начиная с другого окна, будет заменена предыдущая информация о инерции.
Если начинается инерция, указанное окно должно принадлежать текущему потоку, а поток должен получить входные данные за последние две секунды. Впоследствии он должен быть остановлен после остановки движения содержимого окна (если окно не получено либо WM_STOPINERTIA , либо WM_ENDINERTIA, в этом случае не требуется сообщать об остановке инерции). Если система больше не отслеживает инерцию, если отслеживаемое окно не соответствует указанному окну, или если отслеживаемое окно принадлежит другому процессу.
Требования
| Требование | Ценность |
|---|---|
| Минимальный поддерживаемый клиент | Windows 11 [только классические приложения] |
| Минимальный поддерживаемый сервер | Ни одна версия не поддерживается |
| Header | Winuser.h (include Windows.h) |
| Библиотека | User32.lib |
| DLL | User32.dll (порядковый номер 2695) |