Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
[Algumas informações referem-se ao produto pré-lançado que pode ser substancialmente modificado antes de ser lançado comercialmente. Microsoft não faz garantias, expressas ou implícitas, em relação às informações fornecidas aqui.]
Relata ao sistema se o conteúdo da janela especificada está em um estado de inércia.
Sintaxe
WINUSERAPI
BOOL
WINAPI
ReportWindowContentInertia(
HWND hWnd,
BOOL bStartInertia);
Parâmetros
- hWnd
-
Um identificador para a janela cujo estado de inércia de conteúdo está sendo relatado.
- bStartInertia
-
TRUE para relatar que o conteúdo da janela inseriu inércia; FALSE para relatar que a inércia parou.
Valor de retorno
Se a função for bem-sucedida, o valor retornado será diferente de zero.
Se a função falhar, o valor retornado será zero.
Observações
O conteúdo da janela estará "em inércia" se ele continuar a se mover depois de ter sido manipulado pela entrada após a conclusão do fluxo de entrada. Relate essa inércia para que a entrada do touchpad possa interromper corretamente esse movimento quando apropriado.
Se uma janela estiver em inércia, o sistema alterará a forma como ele responde à entrada do touchpad:
- Logo após a chegada da nova entrada do touchpad, o sistema enviará WM_STOPINERTIA para a janela. O aplicativo deve reagir a essa mensagem interrompendo o movimento de seu conteúdo, mas não necessariamente fazendo a transição para fora do estado "inércia" se tiver otimizações para gestos repetidos manipulando o mesmo conteúdo (por exemplo, entrada de teste de clique favorecendo conteúdo em inércia ou lembrando a velocidade de conteúdo existente).
- Se o sistema determinar que a entrada do touchpad está tentando interromper o movimento de conteúdo, o sistema enviará WM_ENDINERTIA para a janela. O aplicativo deve reagir a essa mensagem interrompendo o movimento de seu conteúdo e saindo do estado "inércia".
Cenários de exemplo:
- O usuário executa um toque rápido: WM_ENDINERTIA é enviado. A entrada do mouse não é produzida – o toque resultou apenas na inércia final.
- O usuário segura um dedo no touchpad e, em seguida, levanta-o: WM_STOPINERTIA seguido por WM_ENDINERTIA.
- O usuário executa um gesto rápido de dois dedos: sem mensagens de inércia. Gestos repetidos devem ser tratados sem interromper desnecessariamente o conteúdo.
- O usuário segura um dedo (ou dois) no touchpad e, em seguida, executa um gesto de dois dedos: WM_STOPINERTIA. Ao realizar o gesto, era possível que o usuário estivesse tentando interromper o conteúdo.
Embora, na maioria dos casos, o recebimento de WM_STOPINERTIA seja seguido por WM_ENDINERTIA ou outro gesto de touchpad, não é garantido. Se os aplicativos implementarem um estado de conteúdo especial ao receber WM_STOPINERTIA, esse estado deverá ser encerrado após algum tempo. Da mesma forma, WM_ENDINERTIA pode não ser necessariamente precedido por WM_STOPINERTIA se o fluxo de entrada do touchpad for curto.
Relatar inércia é importante para lidar corretamente com a entrada do touchpad. Se o conteúdo de uma janela estiver em inércia e não for relatado ao sistema, tocar no touchpad resultará no comportamento normal de um clique (botão esquerdo do mouse e esquerdo para cima). O aplicativo pode acabar tratando essa entrada do mouse como interagindo com o conteúdo em movimento, possivelmente resultando na execução de uma ação que o usuário não pretendia.
Para inércia causada pela entrada por toque ou caneta, o sistema não precisa lidar especialmente com a entrada em relação à inércia, pois a janela cujo conteúdo está em inércia normalmente é a mesma que recebe a entrada subsequente. Para entrada touchpad, em contrário, o sistema toma uma decisão antes que o aplicativo receba qualquer entrada. Relatar inércia causada pela entrada por toque ou caneta ainda é recomendado para que, se o usuário tentar interromper a inércia com o touchpad, o comportamento esperado ocorra.
O sistema só mantém o controle de uma única janela na inércia. Se a inércia já estiver ativa quando essa API for chamada para relatar a inércia começando em uma janela diferente, as informações de inércia anteriores serão substituídas.
Se a inércia de relatório for iniciada, a janela especificada deverá pertencer ao thread atual e o thread deverá ter recuperado a entrada nos últimos dois segundos. Posteriormente, ele deve ser relatado como interrompido quando o movimento de conteúdo da janela for interrompido (a menos que a janela tenha recebido WM_STOPINERTIA ou WM_ENDINERTIA, nesse caso, não é necessário relatar a interrupção da inércia). A interrupção de inércia de relatórios será silenciosamente ignorada se o sistema não estiver mais acompanhando a inércia, se a janela rastreada não corresponder à janela especificada ou se a janela rastreada pertencer a um processo diferente.
Requisitos
| Requisito | Valor |
|---|---|
| Cliente mínimo suportado | Windows 11 [somente aplicativos da área de trabalho] |
| Servidor mínimo com suporte | Nenhum compatível |
| Cabeçalho | Winuser.h (inclua Windows.h) |
| Biblioteca | User32.lib |
| DLL | User32.dll (ordinal 2695) |