Fungsi SetGestureConfig (winuser.h)
Mengonfigurasi pesan yang dikirim dari jendela untuk gerakan Windows Touch.
Sintaks
BOOL SetGestureConfig(
[in] HWND hwnd,
[in] DWORD dwReserved,
[in] UINT cIDs,
[in] PGESTURECONFIG pGestureConfig,
[in] UINT cbSize
);
Parameter
[in] hwnd
Handel ke jendela untuk mengatur konfigurasi gerakan.
[in] dwReserved
Nilai ini dicadangkan dan harus diatur ke 0.
[in] cIDs
Hitungan struktur konfigurasi gerakan yang sedang dilewati.
[in] pGestureConfig
Array struktur konfigurasi gerakan yang menentukan konfigurasi gerakan.
[in] cbSize
Ukuran struktur konfigurasi gerakan (GESTURECONFIG).
Menampilkan nilai
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, gunakan fungsi GetLastError .
Keterangan
Jika Anda tidak berharap untuk mengubah konfigurasi gerakan, panggil SetGestureConfig pada waktu pembuatan jendela. Jika Anda ingin mengubah konfigurasi gerakan secara dinamis, panggil SetGestureConfig sebagai respons terhadap pesan WM_GESTURENOTIFY .
Tabel berikut menunjukkan pengidentifikasi untuk gerakan yang didukung oleh anggota dwID dari struktur GESTURECONFIG . Perhatikan bahwa pengaturan dwID ke 0 menunjukkan bahwa bendera konfigurasi gerakan global diatur.
Nama | Nilai | Deskripsi |
---|---|---|
GID_ZOOM | 3 | Pengaturan konfigurasi untuk gerakan zoom. |
GID_PAN | 4 | Gerakan pan. |
GID_ROTATE | 5 | Gerakan rotasi. |
GID_TWOFINGERTAP | 6 | Gerakan ketuk dua jari. |
GID_PRESSANDTAP | 7 | Tekan dan ketuk gerakan. |
Bendera berikut digunakan saat dwID diatur ke nol.
Nama | Nilai | Deskripsi |
---|---|---|
GC_ALLGESTURES | 0x00000001 | Semua isyarat. |
Bendera berikut digunakan saat dwID diatur ke GID_ZOOM.
Nama | Nilai | Deskripsi |
---|---|---|
GC_ZOOM | 0x00000001 | Gerakan zoom. |
Bendera berikut digunakan saat dwID diatur ke GID_PAN.
Nama | Nilai | Deskripsi |
---|---|---|
GC_PAN | 0x00000001 | Semua gerakan pan. |
GC_PAN_WITH_SINGLE_FINGER_VERTICALLY | 0x00000002 | Geser vertikal dengan satu jari. |
GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY | 0x00000004 | Geser horizontal dengan satu jari. |
GC_PAN_WITH_GUTTER | 0x00000008 | Panning dengan batas selokan di sekitar tepi wilayah pannable. Batas selokan membatasi pergerakan tegak lurus ke arah utama hingga ambang batas tercapai untuk keluar dari selokan. |
GC_PAN_WITH_INTERTIA | 0x00000010 | Panning dengan inertia agar pelan saat gerakan panci berhenti. |
GC_PAN_WITH_SINGLE_FINGER_VERTICALLY | GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY
dan melepas geser vertikal satu jari dari bit dwBlock akan mengaktifkan pengalihan vertikal dan horizontal.
Nama | Nilai | Deskripsi |
---|---|---|
GC_ROTATE | 0x00000001 | Gerakan rotasi. |
Bendera berikut digunakan saat dwID diatur ke GID_TWOFINGERTAP.
Nama | Nilai | Deskripsi |
---|---|---|
GC_TWOFINGERTAP | 0x00000001 | Gerakan ketuk dua jari. |
Bendera berikut digunakan saat dwID diatur ke GID_PRESSANDTAP.
Nama | Nilai | Deskripsi |
---|---|---|
GC_PRESSANDTAP | 0x00000001 | Tekan dan ketuk gerakan. |
Contoh
Contoh berikut menunjukkan bagaimana Anda bisa menerima panning satu jari horizontal dan vertikal tanpa selokan dan tanpa inertia. Ini adalah konfigurasi umum untuk aplikasi navigasi 2-D seperti aplikasi Microsoft PixelSense Globe.
// set up our want / block settings
DWORD dwPanWant = GC_PAN_WITH_SINGLE_FINGER_VERTICALLY | GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY;
DWORD dwPanBlock = GC_PAN_WITH_GUTTER | GC_PAN_WITH_INERTIA;
// set the settings in the gesture configuration
GESTURECONFIG gc[] = {{ GID_ZOOM, GC_ZOOM, 0 },
{ GID_ROTATE, GC_ROTATE, 0},
{ GID_PAN, dwPanWant , dwPanBlock}
};
UINT uiGcs = 3;
BOOL bResult = SetGestureConfig(hWnd, 0, uiGcs, gc, sizeof(GESTURECONFIG));
if (!bResult){
DWORD err = GetLastError();
}
Contoh berikut menunjukkan cara menerima gerakan gestur satu jari dan menonaktifkan penggeseran selokan. Ini adalah konfigurasi umum untuk aplikasi yang menggulir teks seperti Notepad.
// set up our want / block settings
DWORD dwPanWant = GC_PAN | GC_PAN_WITH_SINGLE_FINGER_VERTICALLY;
DWORD dwPanBlock = GC_PAN_WITH_GUTTER;
// set the settings in the gesture configuration
GESTURECONFIG gc[] = {{ GID_ZOOM, GC_ZOOM, 0 },
{ GID_ROTATE, GC_ROTATE, 0},
{ GID_PAN, dwPanWant , dwPanBlock}
};
UINT uiGcs = 3;
BOOL bResult = SetGestureConfig(hWnd, 0, uiGcs, gc, sizeof(GESTURECONFIG));
if (!bResult){
DWORD err = GetLastError();
}
Contoh berikut menunjukkan bagaimana Anda dapat menonaktifkan semua gerakan.
// set the settings in the gesture configuration
GESTURECONFIG gc[] = {0,0,GC_ALLGESTURES};
UINT uiGcs = 1;
BOOL bResult = SetGestureConfig(hWnd, 0, uiGcs, gc, sizeof(GESTURECONFIG));
if (!bResult){
DWORD err = GetLastError();
}
Contoh berikut menunjukkan bagaimana Anda dapat mengaktifkan semua gerakan.
GESTURECONFIG gc = {0,GC_ALLGESTURES,0};
UINT uiGcs = 1;
BOOL bResult = SetGestureConfig(hWnd, 0, uiGcs, &gc, sizeof(GESTURECONFIG));
if (!bResult){
DWORD err = GetLastError();
}
Contoh berikut menunjukkan bagaimana Anda dapat mengaktifkan semua gerakan Windows 7.
// set the settings in the gesture configuration
GESTURECONFIG gc[] = {{ GID_ZOOM, GC_ZOOM, 0 },
{ GID_ROTATE, GC_ROTATE, 0},
{ GID_PAN, GC_PAN , 0},
{ GID_TWOFINGERTAP, GC_TWOFINGERTAP , 0},
{ GID_PRESSANDTAP, GC_PRESSANDTAP , 0}
};
UINT uiGcs = 5;
BOOL bResult = SetGestureConfig(hWnd, 0, uiGcs, gc, sizeof(GESTURECONFIG));
if (!bResult){
DWORD err = GetLastError();
}
Contoh konfigurasi berikut akan mengatur jendela induk untuk mengaktifkan dukungan untuk zoom, geser horizontal, dan geser vertikal sementara jendela turunan hanya akan mendukung geser horizontal.
// set up our want / block settings for a parent window
DWORD dwPanWant = GC_PAN_WITH_SINGLE_FINGER_VERTICALLY | GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY;
DWORD dwPanBlock = GC_PAN_WITH_GUTTER | GC_PAN_WITH_INERTIA;
// set the settings in the gesture configuration
GESTURECONFIG gcParent[] = {{ GID_ZOOM, GC_ZOOM, 0 },
{ GID_PAN, dwPanWant , dwPanBlock}
};
// Set the pan settings for a child window
dwPanWant = GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY;
dwPanBlock = GC_PAN_WITH_SINGLE_FINGER_VERTICALLY | GC_PAN_WITH_GUTTER | GC_PAN_WITH_INERTIA;
GESTURECONFIG gcChild[] = {{ GID_ZOOM, 0, GC_ZOOM },
{ GID_PAN, dwPanWant , dwPanBlock}
};
UINT uiGcs = 2;
BOOL bResult = FALSE;
if (isParent){
bResult = SetGestureConfig(hWnd, 0, uiGcs, gcParent, sizeof(GESTURECONFIG));
}else{
bResult = SetGestureConfig(hWnd, 0, uiGcs, gcChild, sizeof(GESTURECONFIG));
}
if (!bResult){
DWORD err = GetLastError();
}
Persyaratan
Klien minimum yang didukung | Windows 7 [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 R2 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | winuser.h (sertakan Windows.h) |
Pustaka | User32.lib |
DLL | User32.dll |