在网上查了资料,wince中,c#的from不能直接处理消息,但是可以通过重载MessageWindow基类的WinProc方法,来处理收到的消息。
下面的代码,是在扫描条码的时候用到的,还有点问题。
激光头扫描条码成功后,会发出WM_SCAN消息,窗体可以通过这个消息来获取条码,在CGC600Msg构造函数中指定获取消息的窗体,在窗体中定义 gcMsg = new CGC600Msg(this);就可以扫描条码,CGC600Msg会获取到这个消息。但是没搞清楚如何获取条码,以后有机会再研究一下。
- using System;
- using System.Collections.Generic;
- using System.Text;
- using Microsoft.WindowsCE.Forms;
- using System.Windows.Forms;
- namespace GC600Test
- {
- public class CGC600Msg: MessageWindow
- {
- private System.Windows.Forms.Form msgForm=null;
- public const int WM_SCAN = 0x500;
- public CGC600Msg( System.Windows.Forms.Form Form )
- {
- this.msgForm = Form;
- }
- protected override void WndProc(ref Message m)
- {
- switch( m.Msg )
- {
- case WM_SCAN:
- MessageBox.Show(m.LParam.ToString());
- MessageBox.Show(m.WParam.ToString());
- MessageBox.Show(m.ToString());
- break;
- default:
- base.WndProc(ref m);
- break;
- }
- }
- }
- }
WinCE下C#处理WM_SCAN消息
本文介绍在Windows CE环境下使用C#处理WM_SCAN消息的方法,通过重载MessageWindow基类的WndProc方法实现对激光扫描枪条码扫描事件的响应。展示了如何创建自定义消息处理类CGC600Msg,并在窗体中实例化以捕获并显示WM_SCAN消息。
4218

被折叠的 条评论
为什么被折叠?



