Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
[Cierta información se relaciona con el producto publicado previamente que puede modificarse sustancialmente antes de su publicación comercial. Microsoft no ofrece ninguna garantía, expresa o implícita, con respecto a la información proporcionada aquí.]
Informa al sistema si el contenido de la ventana especificada está en un estado de inercia.
Sintaxis
WINUSERAPI
BOOL
WINAPI
ReportWindowContentInertia(
HWND hWnd,
BOOL bStartInertia);
Parámetros
- hWnd
-
Identificador de la ventana cuyo estado de inercia de contenido se notifica.
- bStartInertia
-
TRUE para informar de que el contenido de la ventana ha entrado en la inercia; FALSE para informar de que la inercia se ha detenido.
Valor de retorno
Si la función se realiza correctamente, el valor devuelto es distinto de cero.
Si la función no se realiza correctamente, el valor devuelto es cero.
Observaciones
El contenido de la ventana está "inercia" si continúa moviéndose después de haber sido manipulado por la entrada una vez finalizada la secuencia de entrada. Notifique esta inercia para que la entrada del panel táctil pueda detener correctamente este movimiento cuando corresponda.
Si una ventana está inercia, el sistema cambia cómo responde a la entrada del panel táctil:
- Poco después de que llegue la nueva entrada del panel táctil, el sistema enviará WM_STOPINERTIA a la ventana. La aplicación debe reaccionar a este mensaje al detener el movimiento de su contenido, pero no necesariamente pasar fuera del estado "inercia" si tiene optimizaciones para gestos repetidos manipulando el mismo contenido (por ejemplo, la entrada de prueba de posicionamiento favorece el contenido en la inercia o recuerda la velocidad del contenido existente).
- Si el sistema determina que la entrada del panel táctil intenta detener el movimiento del contenido, el sistema enviará WM_ENDINERTIA a la ventana. La aplicación debe reaccionar a este mensaje al detener el movimiento de su contenido y salir del estado "inercia".
Escenarios de ejemplo:
- El usuario realiza una pulsación rápida: se envía WM_ENDINERTIA . La entrada del mouse no se genera: la pulsación solo dio lugar a la inercia final.
- El usuario mantiene un dedo en el panel táctil y, a continuación, lo eleva: WM_STOPINERTIA seguido de WM_ENDINERTIA.
- El usuario realiza un gesto rápido de dos dedos: sin mensajes de inercia. Los gestos repetidos están diseñados para controlarse sin necesidad de detener el contenido.
- El usuario mantiene un dedo (o dos) en el panel táctil y, a continuación, realiza un gesto de dos dedos: WM_STOPINERTIA. Al morar antes de realizar el gesto, era posible que el usuario intentara detener el contenido.
Aunque en la mayoría de los casos, la recepción de WM_STOPINERTIA va seguida de WM_ENDINERTIA u otro gesto del panel táctil, no se garantiza. Si las aplicaciones implementan un estado de contenido especial al recibir WM_STOPINERTIA, ese estado debe salir después de una cantidad de tiempo. Del mismo modo, WM_ENDINERTIA puede no ir precedido necesariamente por WM_STOPINERTIA si el flujo de entrada del panel táctil es corto.
La inercia de informes es importante para controlar correctamente la entrada del panel táctil. Si el contenido de una ventana está en inercia y no se notifica al sistema, pulsar el panel táctil dará como resultado el comportamiento normal de un clic (mouse izquierdo y izquierdo). La aplicación puede terminar tratando esta entrada del mouse como interacción con el contenido en movimiento, lo que posiblemente da lugar a realizar una acción que el usuario no esperaba.
Para la inercia causada por la entrada táctil o de lápiz, el sistema no necesita controlar especialmente la entrada con respecto a la inercia, ya que la ventana cuyo contenido está en inercia suele ser el mismo que recibe la entrada posterior. Para la entrada del panel táctil, contrarily, el sistema toma una decisión antes de que la aplicación reciba cualquier entrada. Todavía se recomienda informar de la inercia causada por la entrada táctil o de lápiz para que si el usuario intenta detener la inercia con su panel táctil, se produce el comportamiento esperado.
El sistema solo realiza un seguimiento de una sola ventana en inercia. Si la inercia ya está activa cuando se llama a esta API para notificar la inercia a partir de una ventana diferente, se reemplazará la información de inercia anterior.
Si se inicia la inercia de informes, la ventana especificada debe ser propiedad del subproceso actual y el subproceso debe haber recuperado la entrada en los últimos dos segundos. Posteriormente se debe notificar como detenida una vez que se detiene el movimiento del contenido de la ventana (a menos que la ventana haya recibido WM_STOPINERTIA o WM_ENDINERTIA, en cuyo caso no es necesario notificar la detención de inercia). La detención de inercia de informes se omitirá silenciosamente si el sistema ya no realiza el seguimiento de la inercia, si la ventana de seguimiento no coincide con la ventana especificada o si la ventana con seguimiento es propiedad de un proceso diferente.
Requisitos
| Requisito | Importancia |
|---|---|
| Cliente mínimo compatible | Windows 11 [solo aplicaciones de escritorio] |
| Servidor mínimo compatible | No se admite ninguno |
| Cabecera | Winuser.h (incluya Windows.h) |
| Biblioteca | User32.lib |
| DLL | User32.dll (ordinal 2695) |