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 [только классические приложения] |
Заголовок |
|
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по