Časová osa zpráv myši a systémových událostí

Při provádění dané akce se systémové události (předponou ISG_) odesílají a přijímají téměř okamžitě aplikací. Zprávy myši (s předponou WM_) se odesílají, když se akce provede a přijme aplikace po uplynutí doby, kterou trvá zpracování události službou zasílání zpráv systému Microsoft Windows. Kromě toho CursorDown a CursorUp jsou události pera přijaté z hardwaru pera. Posílají se, když se pero tabletu dotkne obrazovky a když se zvedne z obrazovky.

Události pera a zprávy myši se nesynchronují. Neexistuje žádná záruka, že odpovídající zprávy myši a události pera budou probíhat v určitém pořadí. Následující graf ukazuje očekávanou, ale ne vždy předvídatelnou posloupnost systémových událostí a událostí myši, které se odesílají. Všimněte si v grafu, že události myši jsou zpožděné, když jsou zjištěny systémové události gest.

očekávané posloupnosti systémových a myšových událostí pro zadávání perem

Důležité aspekty implementace

Při vývoji zpráv myši a systémových událostí zvažte následující skutečnosti:

  • Události pera i zprávy myši se posílají do aplikace bez ohledu na to, jestli se používá pero nebo myš.
  • Pokud vaše aplikace naslouchá zprávám perem i myší, je obtížné předpovědět vztah zpráv, a proto případné chování. Události pera a zprávy myši se nesynchronují. Neexistuje žádná záruka, že odpovídající zprávy myši a události pera (například WM_LBUTTONDOWN a ISG_TAPnebo WM_LBUTTONDBLCLK a ISG_DBLTAP) budou probíhat v určitém pořadí. Vztah mezi těmito zprávami je složitý.
  • Nedoporučuje se kombinovat události myši a pera ve stejné funkci aplikace. Například funkce aplikace, která reaguje na CursorDown a MouseUp se nemusí chovat podle očekávání, a to nyní nebo s budoucími verzemi sady TABLET PC SDK.
  • Pokud uživatel přetáhne pero tabletu před dokončením sekvence pro blokování událostí, odpovídají odeslané události přetažením doleva. Například při spuštění přetažení se odešlou ISG_DRAG a WM_LBUTTONDOWN. Když se pero nakonec zvedne, KurzorUp a WM_LBUTTONUP se odešlou. Událost gest systému se nemusí aktivovat okamžitě, protože musí určit, k jakému typu události dochází.
  • Dvojité klepnutí perem pro tablet je často méně přesné než dvojité kliknutí myší. To vychází ze své podstaty provedení dvojitého klepnutí perem pro tablet. Vzhledem k tomu, že uživatel musí pero pro tablet zvednout, aby provedl poklepání, je čas mezi klepnutími často větší než odpovídající čas mezi kliknutími poklikání. Kromě toho je pravděpodobné, že dva klepnutí pera tabletu se vyskytují na souřadnicích obrazovky, které jsou dále od sebe než u dvou kliknutí myši. Aby to bylo možné přizpůsobit, systém Windows XP Tablet PC Edition má nastavení pro dočasnou a prostorovou vzdálenost mezi dvěma klepnutími, které jsou oddělené od nastavení myši pro dvojité kliknutí. Tato nastavení je možné upravit v Nastavení tabletu a pera v Ovládacích panelech.

Vzhledem k těmto aspektům by aplikace měly naslouchat pouze jedné sadě zpráv, nikoli oběma. Pokud vytváříte aplikaci s podporou pera, poslouchejte jenom systém a zprávy pera. Tyto zprávy jsou předvídatelné a dobře fungují s perem pro tablet. Pokud vytváříte aplikaci, která není povolená perem, poslouchejte jenom zprávy myši.