Pergunta

Eu estou trabalhando em um projeto de legado em VC++/Win32/MFC.Recentemente, tornou-se uma exigência para que o aplicativo funcione em um tablet pc, e isso marcou o início de uma série de novas questões.Eu tenho sido capaz de trabalhar com, e em torno destas questões, mas fico com o qual eu poderia usar alguns especialistas sugestões.

Eu tenho um bug específico que é induzida pelo "elevador", da caneta fora da superfície ativa.Basicamente o cursor do mouse desaparece e reaparece quando é "prima" de volta para o ecrã.

Faz sentido que este não é contabilizada no aplicativo.você não pode elevador o cursor em um pc desktop.Então o que eu estou procurando é uma boa visão sobre o que acontece (em termos de mensagens do windows, etc.) quando o elevador ocorre.Não se traduz apenas alterações de foco e mouseover eventos?Meu erro parece envolver também alterações de cursor (pode não ser levantar relacionadas embora).Certamente o inesperado "elevador" é quebrar o estado da aplicação da ferramenta de processamento.

Assim, o tangível perguntas são:

  1. O que acontece quando uma caneta "elevador" ocorre?Uma prima?
  2. O que chamadas de API pode ser usada para detectar isso?Não é apenas traduzir-se em padrão de mensagens com bandeiras/conjunto de valores?
  3. O que é uma boa maneira de testar/emular esta ao seu pc de desenvolvimento é uma área de trabalho?Eu sou apenas flying blind aqui?(Eu só tenho periódicos de acesso para um tablet pc)
  4. O que representa o comportamento correto ou melhores práticas para stylus tablet consciência?

Obrigado por sua atenção, ee

Foi útil?

Solução

Como um usuário tablet que eu possa responder a algumas de suas perguntas.

Primeiro:

Você não pode muito facilmente manter o "foco do teclado" em uma janela quando a caneta tem a trilha para fora da janela focada para apertar uma tecla no teclado virtual.

A maioria dos teclados virtuais que usei (O windows painel de entrada do tablet e um no ubuntu) permitir que o programa que eles estão digitando para manter o "foco do teclado."

O que acontece quando uma caneta "elevador" ocorre?Uma prima?

No Windows, o valor de pressão cai, mas fora isso, não há nenhum evento.(Eu não sei sobre o linux.)

O que chamadas de API pode ser usada para detectar isso?Não é apenas traduzir-se em padrão de mensagens com bandeiras/conjunto de valores?

Como mencionado acima, se você pode obter o valor de pressão, você pode usar esse.

O que é uma boa maneira de testar/emular esta ao seu pc de desenvolvimento é uma área de trabalho?Eu sou apenas flying blind aqui?(Eu só tenho periódicos de acesso para um tablet pc)

Quando o lápis está colocado para baixo noutro local, o global coordenadas do ponteiro mudar, então, você pode emular a súbita ponteiro se mover com qualquer coisa que lhe permite alterar o ponteiro global de valores.(O Robô classe em Java faz isso com bastante fácil.)

O que representa o comportamento correto ou melhores práticas para stylus tablet consciência?

Eu recomendo que você leia o que a Microsoft tem a dizer, o web site da MSDN tem uma série de excelentes artigos.(http://msdn.microsoft.com/en-us/library/ms704849(VS.85).aspx) Eu vou apontar que o tamanho dos botões no seu aplicativos faz uma ENORME diferença.

Espero que este foi de ajuda.

Outras dicas

Como eu a entendo, não existe o "elevador" evento-o evento somente ocorre quando o lápis está colocado de volta para o ecrã mais tarde.Claro, isso depende do seu driver específico e assim por diante.

Pior, o erro que você descreve pode ser reproduzido com apenas um típico mouse.Tente mover o mouse como rápido como você pode -- é quase certamente irá saltar vários pixels de uma só vez.Ou mesmo dezenas ou centenas, se você tiver as configurações de mouse configurado para a mais alta velocidade do ponteiro.Uma atualização, o mouse pode estar em 100,100.A próxima atualização, que poderia ser no 200,300.

No Windows, o valor de pressão cai, mas fora isso, não há nenhum evento.(Eu não sei sobre o linux.)

No linux você vai ter "ProximityEvents"

Provavelmente, estes eventos WT_PROXIMITY estão disponíveis no windows (por favor, consulte: http://www.wacomeng.com/devsupport/ibmpc/wacomwindevfaq.html )

@Greg - Um esclarecimento, este é um laptop pc integrado com tablet e caneta stylus embutida.o aparelho não tem teclado dedicado (é uma virtual na tela sensível ao toque) e não é uma wacom dispositivo de entrada.Desculpem a confusão.

Parece que há um SDK para o Microsoft Windows XP Tablet PC Edition que podem ter a capacidade para obter detalhes especiais, tais como pressão.No entanto, eu sei que deve haver algum nível de padrão de compatibilidade com o existente do não-tablet com reconhecimento de aplicativos.Eu acho que eu posso tentar obter Spy++ instalado no tablet e tente de filtro e específicos de mensagens/eventos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top