Windows Vista 中的觸控輸入支援
從 Windows Vista 開始,平板電腦技術支援平板電腦上具有觸控功能數位板的觸控輸入。 此支援包含增強的使用者介面,可協助使用手指進行輸入時,協助鎖定和命令 Windows。
觸控數位板支援
畫筆和觸控輸入不排除
請勿假設手寫筆和觸控輸入在 InkCollector、InkOverlay和 RealTimeStylus 應用程式中互斥。
在 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;
}
}
相關主題