WM_TABLET_QUERYSYSTEMGESTURESTATUS mensagem
Enviado quando o sistema pergunta a uma janela quais gestos do sistema ele gostaria de receber.
#define WM_TABLET_DEFBASE 0x02C0
#define WM_TABLET_QUERYSYSTEMGESTURESTATUS (WM_TABLET_DEFBASE + 12)
Parâmetros
-
wParam
-
Não usado.
-
lParam
-
Um valor de ponto que representa as coordenadas da tela.
Comentários
Ao lidar com essa mensagem, você pode desabilitar dinamicamente os movimentos para regiões de uma janela.
Observação
O lParam pode ser convertido em coordenadas x e coordenadas y usando as GET_X_LPARAM
macros e GET_Y_LPARAM
.
Por padrão, a janela receberá todos os eventos de gesto do sistema. Você pode escolher quais eventos deseja que sua janela receba e quais eventos você gostaria de desabilitar respondendo à mensagem WM_TABLET_QUERYSYSTEMGESTURESTATUS em seu WndProc. A mensagem WM_TABLET_QUERYSYSTEMGESTURESTATUS é definida em tpcshrd.h. Os valores para habilitar e desabilitar gestos do sistema de tablets do sistema também são definidos em tpcshrd.h da seguinte maneira:
#define TABLET_DISABLE_PRESSANDHOLD 0x00000001
#define TABLET_DISABLE_PENTAPFEEDBACK 0x00000008
#define TABLET_DISABLE_PENBARRELFEEDBACK 0x00000010
#define TABLET_DISABLE_TOUCHUIFORCEON 0x00000100
#define TABLET_DISABLE_TOUCHUIFORCEOFF 0x00000200
#define TABLET_DISABLE_TOUCHSWITCH 0x00008000
#define TABLET_DISABLE_FLICKS 0x00010000
#define TABLET_ENABLE_FLICKSONCONTEXT 0x00020000
#define TABLET_ENABLE_FLICKLEARNINGMODE 0x00040000
#define TABLET_DISABLE_SMOOTHSCROLLING 0x00080000
#define TABLET_DISABLE_FLICKFALLBACKKEYS 0x00100000
#define TABLET_ENABLE_MULTITOUCHDATA 0x01000000
Observação
Desabilitar pressionar e segurar melhorará a capacidade de resposta para cliques do mouse porque essa funcionalidade cria um tempo de espera para distinguir entre as duas operações.
Tenha cuidado ao lidar com a mensagem de WM_TABLET_QUERYSYSTEMGESTURESTATUS . WM_TABLET_QUERYSYSTEMGESTURESTATUS é passado usando a função SendMessageTimeout . Se você chamar métodos em uma interface COM, esse objeto deverá estar dentro do mesmo processo. Caso contrário, COM lançará uma exceção.
Exemplos
O exemplo a seguir mostra como desabilitar movimentos para uma região usando WM_TABLET_QUERYSYSTEMGESTURESTATUS.
#include <windowsx.h>
(...)
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){
case WM_TABLET_QUERYSYSTEMGESTURESTATUS:
int x = GET_X_LPARAM(lParam);
int y = GET_Y_LPARAM(lParam);
if (x < xThreashold && y < yThreshold){
// no flicks in the region specified by the threashold
return TABLET_DISABLE_FLICKS;
}
// flicks will happen otherwise
return 0;
}
O exemplo a seguir mostra como desabilitar vários recursos de movimentos para uma janela inteira.
const DWORD dwHwndTabletProperty =
TABLET_DISABLE_PRESSANDHOLD | // disables press and hold (right-click) gesture
TABLET_DISABLE_PENTAPFEEDBACK | // disables UI feedback on pen up (waves)
TABLET_DISABLE_PENBARRELFEEDBACK | // disables UI feedback on pen button down (circle)
TABLET_DISABLE_FLICKS; // disables pen flicks (back, forward, drag down, drag up)
void SetTabletpenserviceProperties(HWND hWnd){
ATOM atom = ::GlobalAddAtom(MICROSOFT_TABLETPENSERVICE_PROPERTY);
::SetProp(hWnd, MICROSOFT_TABLETPENSERVICE_PROPERTY, reinterpret_cast<HANDLE>(dwHwndTabletProperty));
::GlobalDeleteAtom(atom);
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte |
Windows Server 2008 [somente aplicativos da área de trabalho] |
Cabeçalho |
|