Udostępnij przez


Obsługa wprowadzania dotykowego w systemie Windows Vista

Począwszy od systemu Windows Vista, technologia Tablet PC ma obsługę wprowadzania dotykowego na komputerze tabletu z cyframi obsługującymi dotyk. Ta obsługa obejmuje ulepszony interfejs użytkownika, który pomaga w określaniu wartości docelowej i poleceń systemu Windows podczas korzystania z palca na potrzeby danych wejściowych.

Obsługa funkcji Touch Digitizer

Wprowadzanie piórem i dotykiem nie jest wykluczane

Nie należy zakładać, że dane wejściowe pióra i dotyku wzajemnie się wykluczają w inkCollector, InkOverlayi Aplikacji RealTimeStylus.

W systemie Windows Vista, gdy system rozpoznaje pióro ignoruje dane wejściowe dotyku. Oznacza to, że pociągnięcie dotykowe kończy się i zaczyna się pociągnięcie pióra. Ponieważ może to ulec zmianie w przyszłości, kod nie powinien zakładać, że dane wejściowe pióra i dotyku wzajemnie się wykluczają.

Inne źródła komunikatów myszy

Istnieją inne źródła komunikatów myszy, nawet jeśli użytkownik korzysta tylko z palca lub pióra. Źródła obejmują touchpady, a także ruch przeznaczony do zezwalania aplikacji za okno warstwowe, aby pamiętać, że mysz porusza się nad aplikacją.

Włączanie i wyłączanie interfejsu użytkownika wprowadzanie danych dotykowych

Możesz włączyć lub wyłączyć interfejs użytkownika wejściowy dotyku w zależności od wymagań aplikacji. W tym celu przechwyć komunikaty okien systemu operacyjnego w procedurze okna i zmodyfikuj komunikat systemu Windows. Zastąp WndProc w aplikacji w celu przechwycenia tych komunikatów. Poniższy kod przykładowy języka C# pokazuje, jak włączyć i wyłączyć interfejs użytkownika danych wejściowych dotyku. Kod pokazuje również użycie tej samej techniki, aby wyłączyć gest naciśnięcia i blokady. Ta metoda działa również w przypadku wyłączania rysika.

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