次の方法で共有


WM_TABLET_QUERYSYSTEMGESTURESTATUS メッセージ

受信するシステム ジェスチャをシステムがウィンドウに要求したときに送信されます。

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

パラメーター

wParam

使用されていません。

lParam

画面座標を表すポイント値。

解説

このメッセージを処理することで、ウィンドウの領域のフリックを動的に無効にすることができます。

Note

lParam は、 マクロGET_Y_LPARAMと マクロを使用して x 座標と y 座標にGET_X_LPARAM変換できます。

 

既定では、ウィンドウはすべてのシステム ジェスチャ イベントを受け取ります。 ウィンドウで受信するイベントと無効にするイベントを選択するには、WndProcWM_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

Note

この機能により、2 つの操作を区別するための待機時間が作成されるため、長押しを無効にすると、マウスクリックの応答性が向上します。

 

WM_TABLET_QUERYSYSTEMGESTURESTATUS メッセージを処理するときは注意が必要です。 WM_TABLET_QUERYSYSTEMGESTURESTATUSSendMessageTimeout 関数を使用して渡されます。 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 Server 2008 [デスクトップ アプリのみ]
ヘッダー
Tpcshrd.h