WM _ TABLET _ QUERYSYSTEMGESTURESTATUS 消息

当系统询问窗口要接收哪些系统手势时发送。

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

parameters

wParam

未使用。

lParam

一个表示屏幕坐标的点值。

备注

通过处理此消息,可以动态禁用窗口区域的笔势。

备注

可以使用 和 宏将 lParam 转换为 x 坐标和 y GET_X_LPARAM GET_Y_LPARAM 坐标。

默认情况下,窗口将接收所有系统手势事件。 通过响应 WndProc 中的 WM TABLET _ _ QUERYSYSTEMGESTURESTATUS 消息,可以选择希望窗口接收的事件以及要禁用的事件。 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;
}        
        

以下示例演示如何为整个窗口禁用各种笔势功能。

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仅服务器 2008 [ 桌面应用]
标头
Tpcshrd.h