5

如何检查用户是否在 C# 控件上使用鼠标或触控笔单击。

例如。如果用户用钢笔按钮单击文本框,那么我希望弹出一个输入面板,但如果他用鼠标单击,那么它不应该。那么如何检查他使用的是鼠标还是笔呢?

编辑:使用 Windows 窗体而不是 WPF

4

3 回答 3

6

我为 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 的名字给我发电子邮件。

于 2009-04-18T18:09:32.813 回答
0

如果您使用的是 WPF,那么会有一大堆 Stylus 事件。例如UIElement.StylusDown

有更多关于手写笔和鼠标事件如何交互的细节。

如果您不使用 WPF,为什么不呢?:p

于 2009-04-17T03:10:16.853 回答
-1

我对此并不太了解,但我猜如果有人使用手写笔,那么 mouseEnter、mouseExit(或任何等价物)事件将永远不会触发。如果有人确实被解雇了,那么您就知道他们正在使用鼠标。

于 2009-04-17T02:41:56.313 回答