OCX skipping event interface _XXX_AXEvents 事件处理

   最近做签章客户端的项目,需要调用外部提供的ocx插件,界面框架为QT。ocx控件QT进行调用没有问题 ,在skipping event interface _XXX_AXEvents 遇到了拦路虎,怎么处理能接收到ocx发出的一些信号呢?因为我有c#调用OCX的源码,可以看到事件的接口参数,QT 的消息机制是信号和槽,所以我就在想,在QT框架内,事件就相当于信号,我只需要根据参数   实现相应的槽函数并与信号连接。结果可行,示例如下:

c#:

  public event _DFoxitReader_AXEvents_OnAddSignatureEventHandler OnAddSignature;

axFoxitReader_AX1.OnAddSignature += OnAddSeal;

 private void OnAddSeal(object sender, AxFoxitReader_AXLib._DFoxitReader_AXEvents_OnAddSignatureEvent e)
        {
            if (e.nSignRet == 0)
            {
                if (fileModified_event != null)
                {
                    fileModified_event();
                }
            }
            else if (e.nSignRet == 1)
            {
                MessageFrm frm = new MessageFrm("PIN码错误,无法盖章");
                frm.StartPosition = FormStartPosition.CenterParent;
                frm.ShowDialog(this);
            }
            else if (e.nSignRet == 2)
            {
                MessageFrm frm = new MessageFrm("取消了PIN码认证,无法盖章");
                frm.StartPosition = FormStartPosition.CenterParent;
                frm.ShowDialog(this);
            }
            else if (e.nSignRet == 3)
            {
                MessageFrm frm = new MessageFrm("Pin码已被锁,无法盖章");
                frm.StartPosition = FormStartPosition.CenterParent;
                frm.ShowDialog(this);
            }
            else if (e.nSignRet == 209727763)
            {

            }
            else
            {
                MessageFrm frm = new MessageFrm("盖章失败");
                frm.StartPosition = FormStartPosition.CenterParent;
                frm.ShowDialog(this);
            }

因为我想获得盖章后的状态,上面的c#源码处理的事件接口参数是整型数值,所以我大胆判定,信号是带整型参数的的,实现如下:

 QObject::connect(foxitReader,SIGNAL(OnAddSignature(int)),this,SLOT(on_AddSignature(int)));

经过测试,结果正确。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值