【发布时间】:2011-11-16 07:08:57
【问题描述】:
我正在为带有条形码阅读器的 .NET CF3.5 WM6.1 设备开发应用程序,并希望捕获设备上的所有按钮(F1、1、扫描仪按钮)单击。特别是我对如何捕捉条形码按钮感兴趣。我写了一个小应用程序,但我能捕捉到的唯一动作是关闭表单。 有人可以帮我处理这段代码吗?我错过了什么?
public partial class Form1 : Form
{
MsgHandler m_MsgHandler;
public Form1()
{
InitializeComponent();
m_MsgHandler = new MsgHandler(this);
}
public class MsgHandler : MessageWindow
{
public const int WM_CLOSE = 71;
public const int WM_USER = 0x0400;
public const int WM_SCANTRIGGER = WM_USER + 702;
private Form1 m_myForm;
public MsgHandler(Form1 form)
{
m_myForm = form;
}
protected override void WndProc(ref Message msg)
{
switch (msg.Msg)
{
case WM_SCANTRIGGER:
this.m_myForm.DoAction1();
break;
case WM_CLOSE:
break;
default:
this.m_myForm.DoAction2(msg.WParam.ToInt32());
break;
}
}
}
public void DoAction1()
{
MessageBox.Show("Scann btn pressed!");
}
public void DoAction2(int button)
{
MessageBox.Show(button.ToString());
}
}
谢谢, 卢卡斯
【问题讨论】:
-
你从哪里得到这个
WM_USER + 702? -
在设备条码示例中,无法正常工作
-
如果示例不起作用,请拨打移动设备的支持电话。
标签: c# winforms windows-mobile wndproc .net-cf-3.5