Bagikan melalui


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
Tpcshrd.h