Bagikan melalui


Dukungan Input Sentuh di Windows Vista

Dimulai dengan Windows Vista, Tablet PC Technology memiliki dukungan untuk input sentuhan pada TABLET PC dengan sentuhan mampu digitizer. Dukungan ini mencakup antarmuka pengguna yang ditingkatkan untuk membantu menargetkan dan memerintahkan Windows saat menggunakan jari untuk input.

Dukungan Touch Digitizer

Input Pena dan Sentuhan Tidak Eksklusif

Jangan asumsikan input pena dan sentuhan saling eksklusif dalam aplikasi InkCollector, InkOverlay, dan RealTimeStylus .

Di Windows Vista, ketika sistem mengenali pena, sistem akan mengabaikan input sentuhan. Artinya, stroke sentuhan berakhir dan stroke pena dimulai. Karena ini mungkin bisa berubah di masa depan, kode Anda tidak boleh menganggap pena dan input sentuhan saling eksklusif.

Sumber Pesan Mouse Lainnya

Ada sumber pesan mouse lainnya bahkan ketika pengguna hanya berinteraksi menggunakan jari atau pena. Sumber termasuk touchpad, serta gerakan yang dimaksudkan untuk membiarkan aplikasi di belakang jendela berlapis menyadari bahwa mouse bergerak di atas aplikasi.

Mengaktifkan dan Menonaktifkan Antarmuka Pengguna Input Sentuhan

Anda mungkin ingin mengaktifkan atau menonaktifkan antarmuka pengguna input sentuhan tergantung pada persyaratan aplikasi Anda. Untuk mencapai hal ini, cegat pesan jendela sistem operasi dalam prosedur jendela dan ubah pesan Windows. Ambil alih WndProc di aplikasi Anda untuk mencegat pesan-pesan ini. Kode semu C# berikut menunjukkan cara mengaktifkan dan menonaktifkan antarmuka pengguna input sentuhan. Kode juga menunjukkan penggunaan teknik yang sama untuk menonaktifkan gerakan tekan dan tahan. Metode ini juga berfungsi untuk menonaktifkan stylus.

const int WM_TABLET_QUERY_SYSTEM_GESTURE_STATUS = 716;

const uint SYSTEM_GESTURE_STATUS_NOHOLD           = 0x00000001;
const uint SYSTEM_GESTURE_STATUS_TOUCHUI_FORCEON  = 0x00000100;
const uint SYSTEM_GESTURE_STATUS_TOUCHUI_FORCEOFF = 0x00000200;

protected override void WndProc(ref Message msg)
{
    switch (msg.Msg)
    {
        case WM_TABLET_QUERY_SYSTEM_GESTURE_STATUS:
        {
            uint result = 0;
            if (...)
            {
                result |= SYSTEM_GESTURE_STATUS_NOHOLD;
            }

            if (...)
            {
                result |= SYSTEM_GESTURE_STATUS_TOUCHUI_FORCEON;
            }

            if (...)
            {
                result |= SYSTEM_GESTURE_STATUS_TOUCHUI_FORCEOFF;
            }

            msg.Result = (IntPtr)result;
        }
        break;

        default:
            base.WndProc(ref msg);
            break;
    }
}

Windows Touch