Compartilhar via


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
Tpcshrd.h