簡體   English   中英

WndProc,如何捕捉所有按下的按鈕?

[英]WndProc, how to catch all buttons press?

我正在為帶有條形碼讀取器的.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());
    }
}

謝謝盧卡斯

條形碼閱讀器的行為通常類似於普通鍵盤,因此無需按下特殊按鈕。 您僅會收到消息,提示您按下了按鍵,然后輸入完整的代碼。

Microsoft POS for .NET可能會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM