WM_TABLET_QUERYSYSTEMGESTURESTATUS pesan
Dikirim ketika sistem meminta jendela gerakan sistem mana yang ingin diterimanya.
#define WM_TABLET_DEFBASE 0x02C0
#define WM_TABLET_QUERYSYSTEMGESTURESTATUS (WM_TABLET_DEFBASE + 12)
Parameter
-
wParam
-
Tidak digunakan.
-
lParam
-
Nilai titik yang mewakili koordinat layar.
Keterangan
Dengan menangani pesan ini, Anda dapat menonaktifkan flicks secara dinamis untuk wilayah jendela.
Catatan
lParam dapat dikonversi ke koordinat x dan koordinat y dengan menggunakan GET_X_LPARAM
makro dan GET_Y_LPARAM
.
Secara default, jendela Anda akan menerima semua peristiwa gerakan sistem. Anda dapat memilih peristiwa mana yang ingin Anda terima jendela dan peristiwa mana yang ingin Anda nonaktifkan dengan merespons pesan WM_TABLET_QUERYSYSTEMGESTURESTATUS di WndProc Anda. Pesan WM_TABLET_QUERYSYSTEMGESTURESTATUS didefinisikan dalam tpcshrd.h. Nilai untuk mengaktifkan dan menonaktifkan gerakan sistem tablet sistem juga didefinisikan dalam tpcshrd.h sebagai berikut:
#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
Catatan
Menonaktifkan tekan dan tahan akan meningkatkan responsivitas untuk klik mouse karena fungsionalitas ini menciptakan waktu tunggu untuk membedakan antara kedua operasi.
Berhati-hatilah saat menangani pesan WM_TABLET_QUERYSYSTEMGESTURESTATUS . WM_TABLET_QUERYSYSTEMGESTURESTATUS diteruskan menggunakan fungsi SendMessageTimeout . Jika Anda memanggil metode pada antarmuka COM, objek tersebut harus berada dalam proses yang sama. Jika tidak, COM memberikan pengecualian.
Contoh
Contoh berikut menunjukkan cara menonaktifkan flicks untuk wilayah menggunakan 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;
}
Contoh berikut menunjukkan cara menonaktifkan berbagai fitur flicks untuk seluruh jendela.
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);
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung |
Windows Vista [hanya aplikasi desktop] |
Server minimum yang didukung |
Windows Server 2008 [hanya aplikasi desktop] |
Header |
|