Solução de problemas de aplicativos
Esta secção apresenta soluções para problemas comuns.
Solução de problemas gerais
Categoria | Descrição |
---|---|
Questão | Estou executando o Windows Server 2008 e os recursos do Windows Touch não estão funcionando. |
Causa | Não ativou a Experiência Desktop. |
Solução | Abra a ferramenta administrativa do Gerenciador do Servidor: clique em Iniciar, aponte para Ferramentas Administrativase clique em Gerenciador do Servidor. Clique no item Recursos na coluna à esquerda. Clique em Adicionar Funcionalidades na secção Funcionalidades. Selecione Experiência Desktop, clique em Avançare, em seguida, clique em Instalar. |
Categoria | Descrição |
---|---|
Questão | Sempre que movo o dedo rapidamente pela minha aplicação, aparece uma seta e o meu gesto ou manipulação não está a registar-se corretamente. |
Causa | Ter os movimentos ativados quando não precisar deles. |
Solução | Você tem os gestos ativados quando deseja que estejam desativados. Consulte Suporte herdado para paneamento com barras de deslocamento para obter informações sobre como desativar gestos de caneta. |
Categoria | Descrição |
---|---|
Questão | Como posso executar aplicações Microsoft PixelSense no Windows 7? |
Causa | O Windows Touch e o Microsoft PixelSense são incompatíveis. |
Solução | Você precisa focar na plataforma Windows 7 ou na plataforma Microsoft PixelSense. |
Solução de problemas de manipulações e inércia
Categoria | Descrição |
---|---|
Questão | A minha candidatura está a congelar sem motivo. Estou recebendo violações de acesso quando inicializo minhas interfaces de objeto. |
Causa | Falta uma chamada para CoInitialize ao usar as interfaces IManipulationProcessor ou IInertiaProcessor. |
Solução | Isso pode ser causado pela instanciação dos objetos COM (Windows Touch Component Object Model) sem chamar CoInitialize. Isso acontece às vezes quando estás a converter projetos de utilização de gestos para a utilização das manipulações ou interfaces de inércia. |
Categoria | Descrição |
---|---|
Questão | Meu objeto está girando incorretamente quando está sendo traduzido. A rotação de um dedo não está funcionando corretamente. |
Causa | A configuração incorreta de pivôs em um objeto. |
Solução | Você não está configurando os pontos de pivô de manipulação corretamente. Defina as propriedades PivotPointX e PivotPointY para o centro do objeto ou ponto em que deseja girar, e defina a propriedade PivotRadius para o raio do seu objeto. |
Solução de problemas do Windows Touch Input
Categoria | Descrição |
---|---|
Questão | Depois de lidar com a mensagem WM_TOUCH, paro de receber feedback sobre limites. |
Causa | Consumir a mensagem WM_TOUCH sem processá-la. |
Solução | Você provavelmente está consumindo uma mensagem do Windows Touch sem encaminhá-la para DefWindowProc, o que resultará em um comportamento inesperado. Consulte Introdução às Mensagens de Toque do Windows para obter mais informações sobre como lidar corretamente com WM_TOUCH mensagens. |
Questão | Estou incluindo windows.h, mas ainda diz que WM_TOUCH não está definido. | ||
Causa | A versão do Windows no Targetver.h está incorreta. | ||
Solução | Você não definiu a versão correta do Windows em seu projeto. O código a seguir ilustra as versões do Windows definidas corretamente para o Windows Touch no Windows 7.
|
Questão | As coordenadas de entrada por toque x e y parecem inválidas. Ou são valores maiores do que eu espero ou são valores negativos. | ||
Causa | Talvez seja necessário converter seus pontos de toque em pixels ou converter as coordenadas da tela. | ||
Solução | Certifique-se de que você está chamando TOUCH_COORD_TO_PIXEL e ScreenToClient. O código a seguir mostra como fazer isso.
Nota: |
Categoria | Descrição |
---|---|
Questão | Não estou a ver WM_TOUCH mensagens, mas sei que o Windows Touch está a funcionar porque estou a ver WM_GESTURE mensagens. |
Causa | Falta uma chamada para RegisterTouchWindow. |
Solução | WM_TOUCH e WM_GESTURE são mensagens mutuamente exclusivas. Se não chamar RegisterTouchWindow, apenas receberá mensagens WM_GESTURE. |
Categoria | Descrição |
---|---|
Questão | Estou a notar pequenos atrasos desde o momento em que toco o dedo até ao momento em que estou a receber entrada na minha aplicação. |
Causa | A rejeição da palma está causando atrasos na entrada. |
Solução | Se TWF_WANTPALM estiver definido em chamadas para RegisterTouchWindow, a rejeição da palma da mão estará ativada. Isso causa um pequeno atraso (100 ms) enquanto o software testa se a entrada está vindo de um dedo, caneta ou palma da mão do usuário. Desative a rejeição da palma chamando RegisterTouchWindow com o sinalizador de TWF_WANTPALM limpo. |
Solução de problemas de gestos de toque do Windows
Categoria | Descrição |
---|---|
Questão | Depois de lidar com a mensagem WM_GESTURE, paro de receber feedback de limite. Ou, um gesto que funcionava anteriormente não funciona agora. |
Causa | Consumir a mensagem WM_GESTURE sem manipulá-la. |
Solução | Você provavelmente está consumindo uma mensagem do Windows Touch sem encaminhá-la para DefWindowProc, o que resultará em um comportamento inesperado. Consulte Introdução aos Gestos do Windows para obter mais informações sobre como lidar corretamente com WM_GESTURE mensagens. |
Categoria | Descrição |
---|---|
Questão | Não estou a ver WM_GESTURE mensagens, mas sei que o Windows Touch está a funcionar porque estou a ver WM_TOUCH mensagens. |
Causa | Chamando RegisterTouchWindow. |
Solução | WM_TOUCH e WM_GESTURE as mensagens são mutuamente exclusivas. Se você ligar para RegisterTouchWindow, você não receberá WM_GESTURE mensagens. |
Questão | Não estou a ver todos os gestos que espero ver. Por exemplo, estou vendo gestos com o identificador GID_PAN mas não GID_ROTATE. | ||
Causa | Alguns gestos, como o gesto de girar, não estão habilitados por padrão. | ||
Solução | Você precisa chamar SetGestureConfig quando receber uma mensagem WM_GESTURENOTIFY, conforme descrito na referência WM_GESTURENOTIFY, ou precisa adicionar um manipulador para a mensagem WM_GESTURENOTIFY. O código a seguir mostra como um manipulador pode ser implementado para habilitar o suporte à rotação.
Para obter mais exemplos de configurações típicas de gestos, consulte SetGestureConfig. |
Categoria | Descrição |
---|---|
Questão | As barras de rolagem personalizadas no meu aplicativo não estão rolando quando executo o gesto de arrastamento. |
Causa | Estão em falta manipuladores para as mensagens corretas WM_*SCROLL. |
Solução | Você não está lidando com todas as mensagens WM_*SCROLL em suas barras de rolagem personalizadas. É recomendável que você manipule a mensagem WM_GESTURE em vez de manter a funcionalidade de barra de rolagem personalizada por meio do suporte herdado. Você precisa oferecer suporte a mensagens conforme detalhado na seção Suporte herdado para movimento panorâmico com barras de rolagem. |
Categoria | Descrição |
---|---|
Questão | Estou a ter atrasos ao executar gestos. |
Causa | Flicks podem estar causando atrasos nos gestos. |
Solução | Os movimentos podem causar atrasos no tempo que o aplicativo leva para receber WM_GESTURE mensagens. Consulte Suporte herdado para movimento com barras de deslocamento para obter informações sobre como desativar flicks. |
Tópicos relacionados