針對應用程式進行疑難解答
本節提供常見問題的解決方案。
一般疑難排解
類別 | 描述 |
---|---|
問題 | 我正在執行 Windows Server 2008 和 Windows Touch 功能無法運作。 |
原因 | 您尚未啟用桌面體驗。 |
解決方案 | 開啟 伺服器管理員 管理工具:按兩下 [開始],指向 [系統管理工具],然後按兩下 [伺服器管理員]。 按兩下左欄中的 [ 功能] 專案。 按兩下 [功能] 區段中的 [新增功能]。 選取 [ 桌面體驗],按 [下一步],然後按兩下 [ 安裝]。 |
類別 | 描述 |
---|---|
問題 | 每當我在應用程式中快速移動手指時,會出現箭號,而且我的手勢或操作未正確註冊。 |
原因 | 當您不需要輕彈時啟用輕彈。 |
解決方案 | 當您想要停用時,即已啟用輕彈。 如需停用手寫筆筆跡的相關信息,請參閱使用滾動條進行移動流覽的舊版支援。 |
問題 | 我無法辨別滑鼠輸入和 Windows Touch 輸入。 | ||
原因 | 當使用者按兩下畫面時,Windows 會產生舊版支援的滑鼠訊息。 | ||
解決方案 | 您可以針對WM_LBUTTONDOWN和WM_LBUTTONUP訊息呼叫 GetMessageExtraInfo 來判斷來源。 下列程式代碼示範如何完成此作業。
|
類別 | 描述 |
---|---|
問題 | 如何? 在 Windows 7 上執行Microsoft PixelSense 應用程式? |
原因 | Windows Touch 和 Microsoft PixelSense 不相容。 |
解決方案 | 您必須以 Windows 7 平臺或Microsoft PixelSense 平台為目標。 |
操作和慣性疑難解答
類別 | 描述 |
---|---|
問題 | 我的應用程式因故而凍結。 當我初始化物件介面時,我會收到存取違規。 |
原因 | 使用 IManipulationProcessor 或 IInertiaProcessor 介面時,缺少 CoInitialize 的呼叫。 |
解決方案 | 這可能是因為具現化 Windows Touch 元件物件模型 (COM) 物件而不呼叫 CoInitialize 所造成。 當您使用手勢將項目轉換成使用操作或慣性介面時,有時會發生這種情況。 |
類別 | 描述 |
---|---|
問題 | 我的物件在翻譯時旋轉不正確。 單指旋轉無法正常運作。 |
原因 | 在對象上設定樞紐不正確。 |
解決方案 | 您未正確設定操作樞紐點。 將 PivotPointX 和 PivotPointY 屬性設定為您要旋轉的物件或點中央,並將 PivotRadius 屬性設定為物件的半徑。 |
針對 Windows Touch 輸入進行疑難解答
類別 | 描述 |
---|---|
問題 | 處理 WM_TOUCH 訊息之後,我停止收到界限意見反應。 |
原因 | 不 需處理WM_TOUCH 訊息即可取用訊息。 |
解決方案 | 您可能會取用 Windows Touch 訊息,而不將其轉送至 DefWindowProc,這會導致非預期的行為。 如需如何正確處理WM_TOUCH訊息的詳細資訊,請參閱開始使用Windows Touch 訊息。 |
問題 | 我包括 windows.h,但它仍然說 ,WM_TOUCH 沒有定義。 | ||
原因 | Targetver.h 中的 Windows 版本不正確。 | ||
解決方案 | 您尚未在項目中設定正確的 Windows 版本。 下列程式代碼說明在 Windows 7 中正確設定 Windows Touch 的 Windows 版本。
|
問題 | 我的觸控輸入 x 座標和 Y 座標似乎無效。 它們是大於我預期的值,或是負值。 | ||
原因 | 您可能需要將觸控點轉換成圖元,或可能需要轉換螢幕座標。 | ||
解決方案 | 請確定您呼叫 TOUCH_COORD_TO_PIXEL 和 ScreenToClient。 下列程式碼示範如何執行這項操作。
注意: |
類別 | 描述 |
---|---|
問題 | 我看不到WM_TOUCH訊息,但我知道 Windows Touch 正在運作,因為我看到WM_GESTURE訊息。 |
原因 | 缺少 RegisterTouchWindow 的呼叫。 |
解決方案 | WM_TOUCH和WM_GESTURE訊息互斥。 如果您未呼叫 RegisterTouchWindow,則只會收到WM_GESTURE訊息。 |
類別 | 描述 |
---|---|
問題 | 我注意到當我在應用程式中輸入時,從我手指向下觸碰到時,小的延遲。 |
原因 | 棕櫚拒絕會導致輸入延遲。 |
解決方案 | 如果在對 RegisterTouchWindow 的呼叫中設定TWF_WANTPALM,則會啟用手掌拒絕。 這會導致小(100 毫秒)的延遲,而軟體會測試輸入是否來自手指、手寫筆或使用者的手掌。 藉由呼叫已清除TWF_WANTPALM旗標的 RegisterTouchWindow 來停用手掌拒絕。 |
針對 Windows Touch 手勢進行疑難解答
類別 | 描述 |
---|---|
問題 | 處理 WM_GESTURE 訊息之後,我停止收到界限意見反應。 或者,先前運作的手勢現在無法運作。 |
原因 | 取 用WM_GESTURE 訊息而不處理。 |
解決方案 | 您可能會取用 Windows Touch 訊息,而不將其轉送至 DefWindowProc,這會導致非預期的行為。 如需如何正確處理WM_GESTURE訊息的詳細資訊,請參閱開始使用Windows手勢。 |
類別 | 描述 |
---|---|
問題 | 我看不到WM_GESTURE訊息,但我知道 Windows Touch 正在運作,因為我看到WM_TOUCH訊息。 |
原因 | 呼叫 RegisterTouchWindow。 |
解決方案 | WM_TOUCH和WM_GESTURE訊息互斥。 如果您呼叫 RegisterTouchWindow,則不會收到WM_GESTURE訊息。 |
問題 | 我看不到我期望看到的所有手勢。 例如,我看到具有標識符 的手勢GID_PAN ,但看不到 GID_ROTATE。 | ||
原因 | 默認不會啟用某些手勢,例如旋轉手勢。 | ||
解決方案 | 當您收到WM_GESTURENOTIFY訊息時,您必須呼叫 SetGestureConfig,如WM_GESTURENOTIFY參考中所述,或您需要新增WM_GESTURENOTIFY訊息的處理程式。 下列程式代碼示範如何實作處理程式,以啟用輪替支援。
如需一般手勢設定的更多範例,請參閱 SetGestureConfig。 |
類別 | 描述 |
---|---|
問題 | 當我執行平移手勢時,應用程式中的自定義滾動條不會捲動。 |
原因 | 遺漏正確WM_*SCROLL 訊息的處理程式。 |
解決方案 | 您不會處理自定義滾動條中的所有WM_*SCROLL 訊息。 建議您處理 WM_GESTURE 訊息,而不是透過舊版支援保留自定義滾動條功能。 您需要支援訊息,如使用滾動條進行移動流覽的舊版支援一節所述。 |
類別 | 描述 |
---|---|
問題 | 我收到手勢的延誤。 |
原因 | 輕彈可能會造成手勢的延遲。 |
解決方案 | 輕拍可能會導致應用程式接收 WM_GESTURE 訊息所需的時間延遲。 如需停用輕彈的相關信息,請參閱使用滾動條進行移動流覽的舊版支援。 |
相關主題