• 6912阅读
  • 5回复

使用activex控件时如何传递事件 [复制链接]

上一主题 下一主题
离线wenjin1314
 

只看楼主 倒序阅读 楼主  发表于: 2013-09-05
需要使用activex控件,我使用方法大概如下:
QAxWidget *m_lvcam;  //定义
//连接初始化
m_lvcam = new QAxWidget(m_parent,0);
m_lvcam->resize(200,200);        
m_lvcam->setControl(QString::fromUtf8("{061A62BE-04A3-4EA2-84F9-2E3479887959}"));        
m_lvcam->showNormal();
//调用
m_lvcam->dynamicCall("Connect(qint16,qint16,qint16,qint16,const LPCTSTR)",
                                        m_nCamera,m_nPort,m_nDevice,m_nInterface,m_sServerIP);

以上都没有什么问题,现在问题是控件里有几个事件需要连接,不知道如何连接。

但是我知道在VC与delphi里是如何使用的,如下:
C++里面是如下定义的:
BEGIN_EVENTSINK_MAP(CFSWinView, CFormView)
    //{{AFX_EVENTSINK_MAP(CFSWinView)
    ON_EVENT(CFSWinView, IDC_LVCAMCTRL1, 103 /* CameraEvent */, OnCameraEvent, VTS_I4)
    ON_EVENT(CFSWinView, IDC_LVCAMCTRL1, 104 /* ResourceChanged */, OnResourceChanged, VTS_BSTR VTS_VARIANT)
    //}}AFX_EVENTSINK_MAP
    ON_EVENT(CFSWinView, IDC_LVCAMCTRL1, 102, CFSWinView::CamCmdReplyLvcamctrl1, VTS_BSTR)
END_EVENTSINK_MAP()
这样就把OnCameraEvent,OnResourceChanged,CamCmdReplyLvcamctrl1 三个事件连接起来了。

在Delphi里面使用方法如下:
FLVCam: TLVCam;
FLVCam.OnCamCmdReply := OnLVCamCamCmdReply;
FLVCam.OnCameraEvent := OnLVCamCameraEvent;
FLVCam.OnResourceChanged := OnLVCamResourceChanged;

但是QT里面是怎么个使用方法,望大侠们不吝赐教。。。

离线wenjin1314

只看该作者 1楼 发表于: 2013-09-05
问题已经解决了,还是用信号与槽关联,activeX里的事件把它当成信号,Qt里面定义相应槽进行关联就可以。
connect(m_lvcam,SIGNAL(CameraEvent(int)),this,SLOT(OnLVCamCameraEvent(int)));
connect(m_lvcam,SIGNAL(CamCmdReply(const LPCTSTR)),this,SLOT(OnLVCamCamCmdReply(LPCTSTR)));
connect(m_lvcam,SIGNAL(ResourceChanged(const LPCTSTR,QVariant)), this,SLOT(OnLVCamResourceChanged(const LPCTSTR,QVariant)));
离线wenjin1314

只看该作者 2楼 发表于: 2013-09-05
这是在C++ GUI Qt 4 编程上找到答案的,里面有一节内容为 <<在windows上使用ActiveX>>
离线liulin188

只看该作者 3楼 发表于: 2013-09-06
good
https://wiki.qt.io/Qt_5.12_Release
https://wiki.qt.io/New_Features_in_Qt_5.12
https://wiki.qt.io/Qt_5.12.0_Known_Issues
https://www.qt.io/blog/qt-5.13.2-released
https://www.qt.io/blog/qt-creator-4.10.2-released
https://wiki.qt.io/Qt_5.12_Tools_and_Versions
离线小罗

只看该作者 5楼 发表于: 2016-07-01
您好,我最近在开发指纹仪的ActiveX控件,也不知道如何传递事件,能否指教一下?
快速回复
限100 字节
 
上一个 下一个