wince扫码功能的实现

本代码在欣技9300PDA手持机实现的:

1.初始化扫码服务

Reader.ReaderEngineAPI.InitReader();
if (Global.MsgWindow == null)
Global.MsgWindow = new MsgWindow();

2.在需要扫码的页面添加扫码事件

Global.MsgWindow.OnReadeBarCode += new EventHandler<MyEventArg>(MsgWindow_OnReadeBarCode);

#region 扫码事件
private void MsgWindow_OnReadeBarCode(object sender, MyEventArg e)
{
。。。

}
#endregion

3.离开扫码的页面需要解除扫码事件

Global.MsgWindow.OnReadeBarCode -= new EventHandler<MyEventArg>(MsgWindow_OnReadeBarCode);

 

注意:需要用到2个dll类库ReaderDll_CE.dll和Reader_Ce_Net.DLL,创建两个公共类GLobal和MsgWindow。

Global.cs文件代码如下:

public class Global
{
#region 全局变量
static public MsgWindow MsgWindow = null;
#endregion
}

 

 

MsgWindow.cs文件代码如下:

public class Win32API
{
#region 调用非托管代码
[DllImport("coredll.dll", SetLastError = true)]
public static extern uint RegisterWindowMessage(string lpstring);
#endregion
}

public class MsgWindow : MessageWindow
{
#region 属性
public static readonly string WM_DECODEDATA = "WM_DECODEDATA";
public UInt32 decodeMsg = 0; 
int bl = 0; 
public string CodeDesc = string.Empty;
public event EventHandler<MyEventArg> OnReadeBarCode;
#endregion

#region 构造方法
public MsgWindow()
{

decodeMsg = Win32API.RegisterWindowMessage(WM_DECODEDATA);
}
#endregion

#region 扫码代码
protected override void WndProc(ref Message m)
{
if (m.Msg == decodeMsg)
{
switch (m.WParam.ToInt32())
{
case Reader.ReaderEngineAPI.DC_READER_BC:
bl = Reader.ReaderEngineAPI.GetDecodeData(ref CodeDesc);
MyEventArg arg = new MyEventArg();
arg.BL = bl;
arg.CodeDesc = CodeDesc;
if (OnReadeBarCode != null)
{
OnReadeBarCode(null, arg);
}
break;

default:
break;
}
}

base.WndProc(ref m);
}
#endregion
}

public class MyEventArg : EventArgs
{
#region 属性
/// <summary>
/// 扫描返回值
/// </summary>
public int BL;
/// <summary>
/// 条码结果
/// </summary>
public string CodeDesc;
#endregion
}

本人第一次写博客,有哪些说不清楚的,请博友见谅!

转载于:https://www.cnblogs.com/sanyecao/p/3558110.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值