Ao desenvolver para um tablet PC, como faço para determinar se o usuário clicou um mouse ou uma caneta?

StackOverflow https://stackoverflow.com/questions/758782

  •  09-09-2019
  •  | 
  •  

Pergunta

Como posso verificar se o usuário clicou com o mouse ou com uma caneta em um controle C #.

Para por exemplo. Se o usuário clica em uma caixa de texto com um botão da caneta, então eu quero um painel de entrada de pop-up, mas se ele clica com o mouse, em seguida, que não deveria. Então, como faço para verificar se ele estava usando um mouse ou uma caneta?

Edit: Usando Windows Forms não WPF

Foi útil?

Solução

Eu escrevi um artigo para MSDN que nunca foi publicado, eu acho que porque o desenvolvimento Tablet PC fracassou no momento em que cheguei a eles. Mas é descrito como fazer isso. Para encurtar a história, você vai querer a API GetMessageExtraInfo. Eis as definições:

// [DllImport( "user32.dll" )]
// private static extern uint GetMessageExtraInfo( );

uint extra = GetMessageExtraInfo();
bool isPen = ( ( extra &  0xFFFFFF00 ) == 0xFF515700 );

O email mim em meu primeiro nome em Einstein tecnologia dot net se você quer que eu lhe enviar o artigo.

Outras dicas

Se você estiver usando WPF depois há toda uma série de eventos Stylus. Por exemplo. UIElement.StylusDown .

Este tem mais detalhes sobre como caneta e eventos do mouse interagem .

Se você não estiver usando WPF, por que não? : P

Eu realmente não sei muito sobre isso, mas eu acho que, se alguém está usando uma caneta, então o mouseenter, mouseExit (ou qualquer que seja o equivalente é) eventos nunca vai fogo. Se alguém faz ser demitido, então você sabe que eles estão usando um mouse.

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