Condividi tramite


Sequenza temporale dei messaggi del mouse e degli eventi di sistema

Quando viene eseguita una determinata azione, gli eventi di sistema (preceduti da ISG_) vengono inviati e ricevuti quasi istantaneamente dall'applicazione. I messaggi del mouse (preceduti da WM_) vengono inviati quando l'azione viene eseguita e vengono ricevuti dall'applicazione dopo il tempo necessario per l'elaborazione dell'evento dal servizio di messaggistica di Microsoft Windows. Inoltre, CursorDown e CursorUp sono eventi di penna ricevuti dall'hardware della penna. Vengono inviati quando la penna del tablet tocca lo schermo e quando viene sollevato rispettivamente dallo schermo.

Gli eventi della penna e i messaggi del mouse non vengono sincronizzati. Non c'è garanzia che i messaggi del mouse e gli eventi della penna corrispondenti si verificheranno in un ordine specifico. Il grafico seguente mostra il previsto, ma non sempre prevedibile, sequenza di eventi di sistema e mouse inviati. Si noti nel grafico che gli eventi del mouse vengono ritardati quando vengono rilevati eventi di movimento di sistema.

sequenza prevista di eventi di sistema e mouse per l'input penna

Considerazioni importanti sull'implementazione

Quando si sviluppano messaggi del mouse ed eventi di sistema, tenere presente quanto segue:

  • Sia gli eventi della penna che i messaggi del mouse vengono inviati a un'applicazione, indipendentemente dal fatto che venga usata la penna o il mouse.
  • Se l'applicazione è in ascolto di messaggi penna e mouse, è difficile prevedere la relazione dei messaggi e quindi il comportamento finale. Gli eventi della penna e i messaggi del mouse non vengono sincronizzati. Non c'è garanzia che i messaggi del mouse e gli eventi penna corrispondenti (ad esempio WM_LBUTTONDOWN e ISG_TAP, o WM_LBUTTONDBLCLK e ISG_DBLTAP) si verificheranno in un ordine specifico. La relazione tra questi messaggi è complessa.
  • È consigliabile non combinare eventi mouse e penna nella stessa funzionalità dell'applicazione. Ad esempio, una funzionalità dell'applicazione che risponde a CursorDown e MouseUp potrebbe non comportarsi come previsto ora o con le versioni future di Tablet PC SDK.
  • Per la sequenza di eventi di blocco, se l'utente trascina la penna del tablet prima del completamento della sequenza, gli eventi inviati corrispondono al trascinamento sinistro. Ad esempio, all'avvio del trascinamento, vengono inviati ISG_DRAG e WM_LBUTTONDOWN. Quando la penna viene infine sollevata, CursorUp e WM_LBUTTONUP vengono inviati. L'evento movimento di sistema potrebbe non essere attivato immediatamente perché deve determinare il tipo di evento che si verifica.
  • Un doppio tocco con una penna per tablet è spesso meno preciso di un doppio clic con un mouse. Ciò deriva dalla natura intrinseca dell'esecuzione di un doppio tocco con una penna per tablet. Poiché l'utente deve sollevare la penna del tablet per eseguire un doppio tocco, il tempo tra i tap è spesso maggiore del tempo corrispondente tra i clic di un doppio clic. Inoltre, è probabile che i due tap della penna del tablet si verifichino a coordinate dello schermo che sono più distanti rispetto a quelle per i due clic del mouse. A tale scopo, Windows XP Tablet PC Edition dispone di impostazioni per la distanza temporale e spaziale tra i due tap di un doppio tocco che sono separati dalle impostazioni del mouse per un doppio clic. Queste impostazioni possono essere modificate in Impostazioni tablet e penna in Pannello di controllo.

A causa di queste considerazioni, le applicazioni devono ascoltare un solo set di messaggi anziché entrambi. Se si sta creando un'applicazione abilitata per la penna, ascoltare solo i messaggi di sistema e penna. Questi messaggi sono prevedibili e funzionano bene con la penna del tablet. Se si sta creando un'applicazione non abilitata per la penna, ascoltare solo i messaggi del mouse.