Eventi di sistema e messaggi del mouse
L'applicazione incorpora una progettazione e un utilizzo ottimali della penna per tablet inviando sia i messaggi del mouse di Microsoft Windows che gli eventi di sistema. Le applicazioni ricevono entrambi i set di eventi per ogni movimento o azione della penna. L'applicazione sceglie quindi l'evento appropriato da usare in base al contesto dell'azione. I messaggi del mouse di Windows funzionano bene per puntare e selezionare le attività ed è consigliabile usarli per le attività che implicano l'interazione con gli elementi dell'interfaccia utente. Gli eventi della penna funzionano bene per l'applicazione input penna in tempo reale, le azioni della penna e la grafia.
Nota
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.
Distinguere l'input penna dal mouse e dal tocco
Quando l'applicazione riceve un messaggio del mouse,ad esempio WM_LBUTTONDOWN, può chiamare la funzione GetMessageExtraInfo per valutare se il messaggio ha avuto origine da una penna o da un dispositivo mouse.
Il valore restituito da GetMessageExtraInfo deve essere sottoposto a maschera contro 0xFFFFFF00 e quindi confrontato con 0xFF515700. Le definizioni seguenti possono rendere più chiaro questo concetto:
#define MI_WP_SIGNATURE 0xFF515700
#define SIGNATURE_MASK 0xFFFFFF00
#define IsPenEvent(dw) (((dw) & SIGNATURE_MASK) == MI_WP_SIGNATURE
Se il confronto è true, questo messaggio del mouse è stato generato da una penna tablet PC o touch screen. In tutti gli altri casi, è possibile presupporre che questo messaggio sia stato generato da un dispositivo mouse.
I 8 bit inferiori restituiti da GetMessageExtraInfo sono variabili. Di questi bit, 7 (il 7 inferiore, mascherato da 0x7F) vengono usati per rappresentare l'ID cursore, zero per il mouse o un valore variabile per l'ID penna. Inoltre, in Windows Vista, l'ottavo bit, mascherato da 0x80, viene usato per distinguere l'input tocco dall'input penna (0 = penna, 1 = tocco).
Per altre informazioni, vedi Input del dispositivo puntatore e Input tocco.
Movimenti di sistema supportati
La tabella seguente elenca i movimenti di sistema attualmente inclusi in Windows XP Tablet PC Edition, dettagli le azioni della penna e gli eventi di sistema corrispondenti e mostra come sono correlati alle azioni tradizionali del mouse.
Movimento penna | Azione del mouse | Descrizione del movimento della penna | Messaggi di evento | Messaggi del mouse | Comportamenti nelle applicazioni basate su Windows |
---|---|---|---|---|---|
Tocco |
Clic con il pulsante sinistro |
Toccare lo schermo una volta con la penna. |
ISG_TAP inviato quando viene sollevata la penna. |
WM_LBUTTONDOWN e WM_LBUTTONUP inviati quando la penna viene sollevata. |
Scegliere il comando dal menu o dalla barra degli strumenti, eseguire l'azione se il comando scelto, impostare il punto di inserimento (IP), visualizzare il feedback di selezione. |
Doppio tocco |
Fare doppio clic su |
Tocca due volte lo schermo in rapida successione. |
ISG_DOUBLETAP inviato al secondo tocco (giù). ISG_TAP evento inviato al primo tocco. |
WM_LBUTTONDBLCLK inviato al secondo tocco (giù). WM_LBUTTONDOWN e WM_LBUTTONUP inviati al primo tocco (su) come per un singolo tocco. |
Selezionare parola, aprire file o cartella. |
Tenere premuto |
Fare clic con il pulsante destro del mouse su |
Toccare lo schermo e tenere premuto finché non viene visualizzata un'icona del mouse e quindi sollevare la penna per visualizzare un menu di scelta rapida. Un'applicazione può scegliere di eseguire un'azione diversa dalla visualizzazione di un menu di clic con il pulsante destro del mouse quando la penna viene sollevata. |
ISG_HOLDENTER inviato quando la penna è stata giù abbastanza a lungo. ISG_RIGHTTAP inviato quando viene sollevata la penna e si verifica il clic con il pulsante destro del mouse. |
WM_RBUTTONDOWN e WM_RBUTTONUP inviati quando si verifica il clic con il pulsante destro del mouse (quando viene sollevata la penna). |
Mostra menu di scelta rapida. |
Blocco |
Clic con il pulsante sinistro |
Toccare lo schermo e tenere premuto finché l'icona del mouse non viene visualizzata e scompare. È probabile che gli utenti lo facciano quando si preme e si tiene premuto e si vuole ripristinare semplicemente il tocco. |
ISG_TAP inviato quando viene sollevata la penna. |
WM_LBUTTONDOWN e WM_LBUTTONUP inviati quando viene sollevata la penna. |
Fare clic con il pulsante sinistro del mouse per molto tempo. Non esiste alcun equivalente del mouse. Si tratta di un fallback per quando un utente esegue la pressione e il blocco per molto tempo. L'evento torna a essere un tocco. |
Trascinare |
Trascinamento sinistro |
Toccare la schermata per selezionare l'oggetto da spostare e quindi trascinare dopo aver selezionato l'oggetto. |
ISG_DRAG inviato all'avvio del trascinamento. |
WM_LBUTTONDOWN inviato all'avvio del trascinamento, seguito da una serie di messaggi di spostamento del mouse e seguito da un evento WM_LBUTTONUP. |
Trascinare la selezione, come in Microsoft Word quando si inizia con un INDIRIZZO IP; selezionare più parole; trascinare, come quando si trascina un oggetto in Windows; Scorrimento. |
Premere e tenere premuto seguito da un trascinamento |
Trascinamento destro |
Toccare la schermata per selezionare l'oggetto da spostare. Tenere premuto fino a quando non viene visualizzata l'icona del mouse e quindi trascinare per spostare l'oggetto. Sollevare la penna per visualizzare un menu di scelta rapida. |
ISG_HOLDENTER inviato quando la penna è stata giù per qualche tempo. ISG_RIGHTDRAG inviato all'avvio del trascinamento. |
WM_RBUTTONDOWN inviato all'avvio del trascinamento, seguito da una serie di messaggi di spostamento del mouse, seguiti da un evento WM_RBUTTONUP. |
Trascinare, come quando si trascina un oggetto o una selezione seguito da un menu di scelta rapida. |
Penna al passaggio del mouse |
Passaggio del mouse |
Tenere costante la penna a una piccola distanza dallo schermo. |
ISG_HOVERENTER evento inviato inizialmente. Al termine dell'intervallo di passaggio del mouse, ISG_HOVERLEAVEis inviato. |
Nessun messaggio del mouse equivalente. |
Mostra descrizione comando, effetti di rollover e altri comportamenti del passaggio del mouse. |
Scuotimento in aria |
Mostra pannello di input tablet PC. Nessun equivalente del mouse. |
Spostare rapidamente la penna da un lato all'altro, tenendo premuta la punta sopra, ma all'interno dell'intervallo, lo schermo. |
L'evento non viene passato all'applicazione. |
Nessun messaggio del mouse equivalente. |
Nuovo, specifico per Tablet PC. |
Specifica delle interazioni con stilo e tocco
Per impostazione predefinita, la finestra riceverà tutti gli eventi di movimento del sistema e userà il modello di interazione predefinito. Alcune parti di questo modello possono interferire con l'applicazione, pertanto è possibile disabilitarle in modo selettivo rispondendo al messaggio WM_TABLET_QUERYSYSTEMGESTURESTATUS in WndProc.