WM_TABLET_QUERYSYSTEMGESTURESTATUS сообщение

Отправляется, когда система запрашивает окно, какие жесты системы она хотела бы получить.

#define WM_TABLET_DEFBASE                    0x02C0
#define WM_TABLET_QUERYSYSTEMGESTURESTATUS   (WM_TABLET_DEFBASE + 12)       

Параметры

wParam

Не используется.

lParam

Значение точки, представляющее координаты экрана.

Комментарии

Обрабатывая это сообщение, можно динамически отключать щелкания для областей окна.

Примечание

LParam можно преобразовать в координаты X и Y с помощью GET_X_LPARAM макросов и GET_Y_LPARAM .

 

По умолчанию окно будет получать все системные события жестов. Вы можете выбрать, какие события вы хотите получать в окне и какие события вы хотите отключить, ответив на сообщение WM_TABLET_QUERYSYSTEMGESTURESTATUS в WndProc. Сообщение WM_TABLET_QUERYSYSTEMGESTURESTATUS определено в файле tpcshrd.h. Значения для включения и отключения системных жестов планшета также определены в tpcshrd.h следующим образом:

#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

Примечание

Отключение нажатия и удержания повышает скорость реагирования при щелчках мышью, так как эта функция создает время ожидания для различения двух операций.

 

Соблюдайте осторожность при обработке сообщения WM_TABLET_QUERYSYSTEMGESTURESTATUS . WM_TABLET_QUERYSYSTEMGESTURESTATUS передается с помощью функции SendMessageTimeout . При вызове методов в COM-интерфейсе этот объект должен находиться в том же процессе. В противном случае COM создает исключение.

Примеры

В следующем примере показано, как отключить жесты для региона с помощью 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;
}        
        

В следующем примере показано, как отключить различные функции flicks для всего окна.

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);
}        
        

Требования

Требование Значение
Минимальная версия клиента
Windows Vista [только классические приложения]
Минимальная версия сервера
Windows Server 2008 [только классические приложения]
Заголовок
Tpcshrd.h