ユーザーが C# コントロールでマウスまたはペン スタイラスでクリックしたかどうかを確認するにはどうすればよいですか。
たとえば。ユーザーがペン ボタンでテキスト ボックスをクリックすると、入力パネルがポップアップ表示されますが、マウスでクリックすると表示されません。では、彼がマウスを使っていたのか、ペンを使っていたのかを確認するにはどうすればよいでしょうか。
編集:WPFではなくWindowsフォームを使用する
私が MSDN に記事を書いたのですが、それが公開されることはありませんでした。おそらく、私が MSDN に届いたときには、Tablet PC の開発が失敗していたからでしょう。しかし、それはこれを行う方法を説明しました。簡単に言うと、GetMessageExtraInfo API が必要になります。定義は次のとおりです。
// [DllImport( "user32.dll" )]
// private static extern uint GetMessageExtraInfo( );
uint extra = GetMessageExtraInfo();
bool isPen = ( ( extra & 0xFFFFFF00 ) == 0xFF515700 );
記事の送付をご希望の場合は、Einstein Tech dot net 宛てにメールをお送りください。
WPF を使用している場合は、多数の Stylus イベントがあります。例: UIElement.StylusDown。
これには、スタイラスとマウスのイベントがどのように相互作用するかについての詳細があります。
WPF を使用していない場合は、なぜですか? :p
私はこれについてあまり知りませんが、誰かがスタイラスを使用している場合、mouseEnter、mouseExit (または同等のもの) のイベントは発生しないと思います。解雇された場合、彼らがマウスを使用していることがわかります。