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;
}
}
相關主題