滑鼠訊息和系統事件的時程表
執行指定的動作時,應用程式會以ISG_) 為前置詞的系統事件 (立即傳送和接收。 當執行動作,並在 Microsoft Windows 傳訊服務處理事件所需的時間之後,應用程式會收到WM_) 前置詞的滑鼠訊息 (。 此外, CursorDown 和 CursorUp 是從手寫筆硬體收到的手寫筆事件。 當平板電腦手寫筆觸碰螢幕,以及從螢幕隨即啟動時,就會傳送它們。
手寫筆事件和滑鼠訊息不會同步處理。 不保證對應的滑鼠訊息和手寫筆事件會以特定順序發生。 下圖顯示所傳送之系統與滑鼠事件序列的預期,但不一定是可預測的。 請注意,在圖表中偵測到系統手勢事件時,滑鼠事件會延遲。
重要實作考慮
針對滑鼠訊息和系統事件進行開發時,請考慮下列事項:
- 無論是否使用畫筆或滑鼠,畫筆事件和滑鼠訊息都會傳送至應用程式。
- 如果您的應用程式同時接聽手寫筆和滑鼠訊息,則很難預測訊息的關聯性,因此最終行為。 手寫筆事件和滑鼠訊息不會同步處理。 不保證對應的滑鼠訊息和手寫筆事件 (,例如 WM_LBUTTONDOWN和ISG_TAP,或 WM_LBUTTONDBLCLK和ISG_DBLTAP) 會以特定順序發生。 這些訊息之間的關聯性很複雜。
- 建議您不要在相同的應用程式功能中混合和比對滑鼠和手寫筆事件。 例如,回應 CursorDown 和 MouseUp 的應用程式功能目前或未來版本的平板電腦 SDK 可能無法如預期般運作。
- 針對透過事件順序保留,如果使用者在順序完成之前拖曳平板電腦手寫筆,則傳送的事件會對應至左拖曳。 例如,當拖曳開始時, 會傳送ISG_DRAG 和WM_LBUTTONDOWN。 當畫筆最終隨即解除時, 會傳送 CursorUp 和WM_LBUTTONUP。 系統手勢事件可能不會立即引發,因為它必須判斷發生何種事件。
- 使用平板電腦手寫筆按兩下通常比使用滑鼠按兩下更不精確。 這來自使用平板電腦手寫筆執行雙點選的固有本質。 因為使用者必須解除平板電腦手寫筆才能執行按兩下,點選之間的時間通常大於按兩下點選之間的對應時間。 此外,平板電腦手寫筆的兩個點選可能會發生在螢幕座標上,這比滑鼠的兩次點選更遠。 為了容納這一點,Windows XP 平板電腦版有兩個點選點與按兩下滑鼠設定分開的時態和空間距離設定。 您可以在 主控台 的平板電腦和手寫筆設定中調整這些設定。
基於這些考慮,應用程式應該只接聽一組訊息,而不是兩者。 如果您要建置已啟用畫筆的應用程式,請只接聽系統和手寫筆訊息。 這些訊息是可預測的,且適用于平板電腦手寫筆。 如果您要建置未啟用手寫筆的應用程式,請只接聽滑鼠訊息。