Ao desenvolver para um tablet PC, como faço para determinar se o usuário clicou um mouse ou uma caneta?
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
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.