在开发平板电脑时,如何确定用户是否点击了鼠标或笔?

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

例如。 如果用户点击带有笔按钮的文本框,那么我想要一个输入面板弹出,但如果他用鼠标点击则不应该。 那么我该如何检查他是使用鼠标还是笔?

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

我为MSDN撰写了一篇从未发表过的文章,我想是因为平板电脑的开发在我得到它们的时候就失败了。 但它描述了如何做到这一点。 简而言之,您需要GetMessageExtraInfo API。 这是定义:

// [DllImport( "user32.dll" )] // private static extern uint GetMessageExtraInfo( ); uint extra = GetMessageExtraInfo(); bool isPen = ( ( extra & 0xFFFFFF00 ) == 0xFF515700 ); 

如果您希望我发给您文章,请在爱因斯坦科技网点以我的名字给我发电子邮件。

如果您正在使用WPF,那么就会有大量的Stylus事件。 例如UIElement.StylusDown 。

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

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

我真的不太了解这一点,但我猜想如果有人使用手写笔,那么mouseEnter,mouseExit(或任何相应的东西)事件将永远不会触发。 如果有人被解雇,那么你知道他们正在使用鼠标。