mfc调用ocx控件

项目中,有时候三方公司提供ocx控件调用,下面介绍如何一步步调用。

1) 在任意目录存放三方ocx并进行注册和反注册测试,先保证三方ocx能注册成功

reg.bat:
regsvr32 /u C:\xxx_dir\xxx.OCX
regsvr32 C:\xxx_dir\xxx.OCX

unreg.bat:
regsvr32  /u C:\xxx_dir\xxx.OCX

2)用vc6或vs创建mfc界面工程项目,在界面右键->插入ActiveX控件,在出来的对话框选择注册成功的三方控件名称。

3)mfc界面就会显示三方控件样子,正常是个矩形框,可以拖拽。并自动生成了三方控件的控件IDC_UCZLZZYB

4)进入mfc界面向导,选择三方控件id,增加变量,则会提示生成三方控件的包装类,包装类是继承CWnd,并有GetClsid等方法。class C_ucZLZZYB : public CWnd

class C_ucZLZZYB : public CWnd
{
protected:
    DECLARE_DYNCREATE(C_ucZLZZYB)
public:
    CLSID const& GetClsid()
    {
        static CLSID const clsid
            = { 0xc3f2add4, 0xd59a, 0x4c8f, { 0x81, 0x6e, 0xff, 0x37, 0xc9, 0x5c, 0xfe, 0x9c } };
        return clsid;
    }
    ...
}

5)在代码中,直接调用三方控件成员变量的方法即可。

void CQdzlybdemoDlg::OnBTNReadCard() 
{
    CString req;

    GetDlgItemText(IDC_EDT_REQ,req);
    
    C_ucZLZZYB *zlyb = &m_zlybCtl;
    CString rsp = zlyb->zlReadCardNew(req.GetBuffer(0));
    
    AfxMessageBox(rsp);

    rsp.Insert(0,"调用返回=>");
    SetDlgItemText(IDC_EDT_RSP,rsp);
}

 

posted @ 2022-08-24 16:29  晨光静默  阅读(377)  评论(0编辑  收藏  举报