Risoluzione dei problemi relativi alle applicazioni
In questa sezione vengono fornite soluzioni ai problemi comuni.
Risoluzione di problemi generali
Categoria | Descrizione |
---|---|
Problema | Le funzionalità Windows Server 2008 e Windows Touch non funzionano. |
Causa | L'esperienza desktop non è stata abilitata. |
Soluzione | Aprire lo strumento di amministrazione di Server Manager: fare clic su Start, scegliere Strumenti di amministrazione e quindi fare clic su Server Manager. Fare clic sull'elemento Features (Funzionalità) nella colonna sinistra. Fare clic su Aggiungi funzionalità nella sezione Funzionalità . Selezionare Esperienza desktop, fare clic su Avanti e quindi su Installa. |
Categoria | Descrizione |
---|---|
Problema | Ogni volta che si sposta il dito rapidamente attraverso l'applicazione, viene visualizzata una freccia e il movimento o la manipolazione non viene registrata correttamente. |
Causa | Dopo aver abilitato i scorrere quando non è necessario. |
Soluzione | È stato abilitato un tocco quando si vuole che venga disabilitato. Per informazioni sulla disabilitazione dei tasti di scorrimento, vedere Supporto legacy per la panoramica con le barre di scorrimento. |
Problema | Non riesco a distinguere tra l'input del mouse e l'input tocco di Windows. | ||
Causa | Windows genera messaggi del mouse per il supporto legacy quando un utente fa clic sullo schermo. | ||
Soluzione | È possibile chiamare GetMessageExtraInfo per i messaggi WM_LBUTTONDOWN e WM_LBUTTONUP per determinare l'origine. Nel codice seguente viene illustrato come eseguire questa operazione.
|
Categoria | Descrizione |
---|---|
Problema | Ricerca per categorie eseguire applicazioni Microsoft PixelSense in Windows 7? |
Causa | Windows Touch e Microsoft PixelSense non sono compatibili. |
Soluzione | Devi scegliere come destinazione la piattaforma Windows 7 o microsoft PixelSense. |
Risoluzione dei problemi relativi a manipolazioni e inerzia
Categoria | Descrizione |
---|---|
Problema | La mia applicazione non si blocca per nessun motivo. Si ricevono violazioni di accesso quando si inizializzano le interfacce dell'oggetto. |
Causa | Manca una chiamata a CoInitialize quando si usano le interfacce IManipulationProcessor o IInertiaProcessor. |
Soluzione | Ciò potrebbe essere causato dalla creazione di un'istanza degli oggetti COM (Windows Touch Component Object Model) senza chiamare CoInitialize. Ciò si verifica a volte quando si convertono progetti dall'uso dei movimenti all'uso delle manipolazioni o delle interfacce di inerzia. |
Categoria | Descrizione |
---|---|
Problema | Il mio oggetto ruota in modo errato quando viene tradotto. La rotazione con un solo dito non funziona correttamente. |
Causa | Impostazione non corretta dei pivot su un oggetto . |
Soluzione | Non si configurano correttamente i punti pivot di manipolazione. Impostare le proprietà PivotPointX e PivotPointY sul centro dell'oggetto o del punto da ruotare e impostare la proprietà PivotRadius sul raggio dell'oggetto. |
Risoluzione dei problemi relativi all'input tocco di Windows
Categoria | Descrizione |
---|---|
Problema | Dopo aver gestito il messaggio di WM_TOUCH , smetti di ricevere feedback sui limiti. |
Causa | Utilizzo del messaggio di WM_TOUCH senza gestirlo. |
Soluzione | È probabile che si stia utilizzando un messaggio tocco di Windows senza inoltrarlo a DefWindowProc, che comporterà un comportamento imprevisto. Per altre informazioni su come gestire correttamente i messaggi di WM_TOUCH, vedere Introduzione ai messaggi tocco di Windows. |
Problema | Sono incluso windows.h, ma dice ancora che WM_TOUCH non è definito. | ||
Causa | La versione di Windows in Targetver.h non è corretta. | ||
Soluzione | Non è stata impostata la versione corretta di Windows nel progetto. Il codice seguente illustra le versioni di Windows impostate correttamente per Windows Touch in Windows 7.
|
Problema | Le coordinate x e le coordinate y dell'input tocco sembrano non valide. Sono valori più grandi di quelli previsti o sono valori negativi. | ||
Causa | Potrebbe essere necessario convertire i punti di tocco in pixel oppure potrebbe essere necessario convertire le coordinate dello schermo. | ||
Soluzione | Assicurarsi di chiamare TOUCH_COORD_TO_PIXEL e ScreenToClient. A tal fine, osservare il codice indicato di seguito.
Nota: |
Categoria | Descrizione |
---|---|
Problema | Non vedo messaggi WM_TOUCH, ma so che Windows Touch funziona perché vedo WM_GESTURE messaggi. |
Causa | Manca una chiamata a RegisterTouchWindow. |
Soluzione | WM_TOUCH e WM_GESTURE messaggi si escludono a vicenda. Se non chiami RegisterTouchWindow, riceverai solo WM_GESTURE messaggi. |
Categoria | Descrizione |
---|---|
Problema | Sto notando piccoli ritardi dal momento in cui tocco il dito verso il basso quando ricevo l'input nella mia applicazione. |
Causa | Il rifiuto del palmo sta causando ritardi nell'input. |
Soluzione | Se TWF_WANTPALM è impostato nelle chiamate a RegisterTouchWindow, il rifiuto del palmo è abilitato. Ciò causa un piccolo ritardo (100 ms) mentre il software verifica se l'input proviene da un dito, una penna o il palmo dell'utente. Disabilitare il rifiuto del palmo chiamando RegisterTouchWindow con il flag TWF_WANTPALM deselezionato. |
Risoluzione dei problemi relativi ai movimenti tocco di Windows
Categoria | Descrizione |
---|---|
Problema | Dopo aver gestito il messaggio di WM_GESTURE , smetti di ricevere feedback sui limiti. In alternativa, un gesto che funzionava in precedenza non funziona ora. |
Causa | Utilizzo del messaggio di WM_GESTURE senza gestirlo. |
Soluzione | È probabile che si stia utilizzando un messaggio tocco di Windows senza inoltrarlo a DefWindowProc, che comporterà un comportamento imprevisto. Per altre informazioni su come gestire correttamente i messaggi WM_GESTURE, vedere Introduzione ai movimenti di Windows. |
Categoria | Descrizione |
---|---|
Problema | Non vedo messaggi WM_GESTURE, ma so che Windows Touch funziona perché vedo WM_TOUCH messaggi. |
Causa | Chiamata a RegisterTouchWindow. |
Soluzione | WM_TOUCH e WM_GESTURE messaggi si escludono a vicenda. Se chiami RegisterTouchWindow, non riceverai WM_GESTURE messaggi. |
Problema | Non vedo tutti i gesti che mi aspetto di vedere. Ad esempio, visualizzo i movimenti con l'identificatore GID_PAN ma non GID_ROTATE. | ||
Causa | Alcuni movimenti, ad esempio il movimento di rotazione, non sono abilitati per impostazione predefinita. | ||
Soluzione | È necessario chiamare SetGestureConfig quando si riceve un messaggio di WM_GESTURENOTIFY come descritto nel riferimento WM_GESTURENOTIFY oppure è necessario aggiungere un gestore per il messaggio WM_GESTURENOTIFY. Il codice seguente illustra come implementare un gestore per abilitare il supporto per la rotazione.
Per altri esempi di configurazioni tipiche dei movimenti, vedere SetGestureConfig. |
Categoria | Descrizione |
---|---|
Problema | Le barre di scorrimento personalizzate nell'applicazione non vengono scorrete quando si esegue il movimento di panoramica. |
Causa | Gestori mancanti per i messaggi di WM_*SCROLL corretti. |
Soluzione | Non si gestiscono tutti i messaggi WM_*SCROLL nelle barre di scorrimento personalizzate. È consigliabile gestire il messaggio WM_GESTURE anziché mantenere la funzionalità personalizzata della barra di scorrimento tramite il supporto legacy. È necessario supportare i messaggi come descritto nella sezione Supporto legacy per la panoramica con barre di scorrimento. |
Categoria | Descrizione |
---|---|
Problema | Sto ricevendo ritardi per i movimenti. |
Causa | I movimenti possono causare ritardi nei movimenti. |
Soluzione | Le operazioni Flick possono causare ritardi per quanto tempo l'applicazione deve ricevere WM_GESTURE messaggi. Vedere Supporto legacy per la panoramica con barre di scorrimento per informazioni sulla disabilitazione dei scorrere. |
Argomenti correlati