WM_TABLET_QUERYSYSTEMGESTURESTATUS訊息
當系統詢問視窗想要接收的系統手勢時傳送。
#define WM_TABLET_DEFBASE 0x02C0
#define WM_TABLET_QUERYSYSTEMGESTURESTATUS (WM_TABLET_DEFBASE + 12)
參數
-
wParam
-
未使用。
-
lParam
-
表示螢幕座標的點值。
備註
藉由處理此訊息,您可以動態停用視窗區域的閃爍。
注意
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
注意
停用按住會改善滑鼠按一下的回應性,因為這項功能會建立等候時間來區別這兩項作業。
處理 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 [僅限傳統型應用程式] |
標頭 |
|