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
変換できます。
既定では、ウィンドウはすべてのシステム ジェスチャ イベントを受け取ります。 ウィンドウで受信するイベントと無効にするイベントを選択するには、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
Note
この機能により、2 つの操作を区別するための待機時間が作成されるため、長押しを無効にすると、マウスクリックの応答性が向上します。
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 Server 2008 [デスクトップ アプリのみ] |
ヘッダー |
|