WndProc,如何抓住所有按钮?

时间:2011-09-13 15:30:20

标签: c# winforms windows-mobile wndproc .net-cf-3.5

我正在开发一个带有条形码阅读器的.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());
    }
}

谢谢你, 卢卡斯

2 个答案:

答案 0 :(得分:1)

条形码阅读器通常表现得像普通键盘,因此没有按下特殊按钮。您只需获得按键被按下的消息,然后输入完整的代码。

答案 1 :(得分:0)

Microsoft POS for .NET可能会有所帮助。