如何检查用户是否在C#控件上用鼠标或钢笔手写笔点击。
例如。如果用户点击带有笔按钮的文本框,那么我想要一个输入面板弹出,但如果他用鼠标点击则不应该。那么我该如何检查他是使用鼠标还是笔?
编辑:使用Windows窗体而不是WPF
答案 0 :(得分:6)
我为MSDN撰写了一篇从未发布过的文章,我想是因为平板电脑的发展在我得到它的时候失败了。但它描述了如何做到这一点。简而言之,您需要GetMessageExtraInfo API。这是定义:
// [DllImport( "user32.dll" )]
// private static extern uint GetMessageExtraInfo( );
uint extra = GetMessageExtraInfo();
bool isPen = ( ( extra & 0xFFFFFF00 ) == 0xFF515700 );
如果您希望我将文章发给您,请在爱因斯坦科技网点以我的名字给我发电子邮件。
答案 1 :(得分:0)
如果您正在使用WPF,则会有大量的Stylus事件。例如。 UIElement.StylusDown
This提供了有关手写笔和鼠标事件如何互动的更多详细信息。
如果您不使用WPF,为什么不呢? :P
答案 2 :(得分:-1)
我对此并不太了解,但我猜如果有人使用手写笔,那么mouseEnter,mouseExit(或任何相应的东西)事件将永远不会触发。如果有人被解雇,那么你知道他们正在使用鼠标。