共用方式為


Windows Vista 中的觸控輸入支援

從 Windows Vista 開始,平板電腦技術支援平板電腦具有觸控功能數位板的觸控輸入。 這項支援包含增強的使用者介面,可協助在使用手指進行輸入時,協助鎖定和命令 Windows。

觸控數位板支援

手寫筆和觸控輸入不獨佔

請勿假設手寫筆和觸控輸入在 InkCollectorInkOverlayRealTimeStylus 應用程式中互斥。

在 Windows Vista 中,當系統辨識手寫筆時,它會忽略觸控輸入。 也就是說,觸控筆劃會結束,而筆刷筆觸會開始。 因為這可能會在未來變更,所以您的程式碼不應該假設手寫筆和觸控輸入互斥。

其他滑鼠訊息來源

即使使用者只使用手指或手寫筆進行互動,也有其他滑鼠訊息來源。 來源包括觸控板,以及用來讓應用程式在分層視窗後方移動的動作,請注意滑鼠在應用程式上方移動。

啟用和停用觸控輸入使用者介面

您可以視應用程式的需求而定,啟用或停用觸控輸入使用者介面。 若要達成此目的,請攔截視窗程式中的作業系統視窗訊息,並修改 Windows 訊息。 覆寫應用程式中 的 WndProc 以攔截這些訊息。 下列 C# 虛擬程式碼示範如何啟用和停用觸控輸入使用者介面。 程式碼也會示範使用相同的技術來停用按住手勢。 這個方法也適用于停用手寫筆。

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