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