最近朋友遇到一个问题,项目需要多个相同功能但接口不一的OCX的统一接口方便调用,需要在MFC工程中动态加载OCX,对这些OCX进行二次封装。后来问到了我,帮忙解决后特记录下来,希望能帮到遇到同样问题的同学。以下是解决方法。

1、新建对话框,使用非模态加载窗口,然后隐藏

COcxDlg *pDlg = new COcxDlg;
pDlg->Create(COcxDlg::IDD, this);
pDlg->RunModalLoop();
pDlg->ShowWindow(SW_HIDE);

2、打开对话框,右键打开类向导,添加Activex控件中的MFC类,在可用的Activex中找到需要调用的OCX,选中,然后找到需要调用的接口,选中添加,然后完成,会自动生成对应的类。

3、在COcxDlg中引用生成的类,并定义对应的对象

CDPS_CameraAX m_CameraAx;
CDIDCardReader m_IDCardReaderAx;

4、在Resource.h中添加自定义ID,后面用来关联OCX,注意不要与其他ID冲突

#define IDC_OCX_CAMERA                   1001
#define IDC_OCX_IDCARD                   1002

5、根据不同场景选择不同的OCX加载,加载方法

//场景一
m_CameraAx.Create((LPCTSTR)"",WS_CHILD|WS_VISIBLE,CRect(0,0,100,200),this,IDC_OCX_CAMERA);
m_CameraAx.ShowWindow(SW_SHOW);//场景二
m_IDCardAx.Create((LPCTSTR)"",WS_CHILD|WS_VISIBLE,CRect(0,0,100,200),this,IDC_OCX_IDCARD);
m_IDCardAx.ShowWindow(SW_SHOW);

6、后面就可以通过定义的对象直接调用相应接口了,下面是调用示例。

//场景一
m_CameraAx.PS_OpenCamera(1, 1, 1, (LPCTSTR)"1024x1080");//场景二
m_IDCardAx.ListReaderCard();

MFC动态加载OCX控件相关推荐

  1. VB6.0动态加载ActiveX控件漫谈[转]

    [转帖]VB6.0动态加载ActiveX控件漫谈http://www.7880.com/Info/Article-4b559560.html 熟悉VB的朋友对使用ActiveX控件一定不会陌生,众多控 ...

  2. 动态加载用户控件的怪问题

    动态加载用户控件的时候,会因为调用一些控件的一些属性和方法而造成控件命名混乱. 因为add 一个用户控件或者 loadcontrol 的时候 如果没有指定控件的id,clientid,那么它会初始id ...

  3. 使用RenderControl方法实现动态加载用户控件

    nsus.NET相信很多网友们均会动态加加载用户控件.如Insus.NET以前写的博文: http://www.cnblogs.com/insus/archive/2012/04/16/2451085 ...

  4. 解决IE不能加载OCX控件问题(一)

    OCX是VS2010开发 在共享DLL中使用MFC 运行库是多线程选择的是MD IE浏览器打开嵌入OCS的页面后,无法加载OCX,如下图: 在IE浏览器打开该URL后,会提示"IE浏览器已停 ...

  5. Asp.net2.0动态加载用户控件的三种方法

    方法一: 直接拖放的用户控件 <!--这是某个aspx页--> ..... <%@ Register Src="TestControl.ascx" TagName ...

  6. vbnet加载ocx控件不能生成窗体_解决VB6.0中不能加载MSCOMCTL.OCX的错误提示

    VB6.0毕竟是很古老的开发工具了,其对所使用的第三方组件依赖性比较强,例如在打开从其它电脑上拿来的VB6.0的软件(系统)的工程文件(源代码)时,经常会遇到"不能加载MSCOMCTL.OC ...

  7. IE11 死活无法加载OCX控件

    依次展开注册表到HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main分支 新建一个DWORD32值,并将其命名为TabProcGrow ...

  8. 【Android 逆向】类加载器 ClassLoader ( 使用 DexClassLoader 动态加载字节码文件 | 拷贝 DEX 文件到内置存储 | 加载并执行 DEX 字节码文件 )

    文章目录 一.拷贝 Assets 目录下的 classes.dex 字节码文件到内置存储区 二.加载 DEX 文件并执行其中的方法 三.MainActivity 及执行结果 四.博客资源 一.拷贝 A ...

  9. CGContextRef绘图-iOS球形波浪加载进度控件-HcdProcessView详解

    简书也有发布:http://www.jianshu.com/p/20d7... <iOS球形波浪加载进度控件-HcdProcessView>这篇文章已经展示了我在项目中编写的一个球形进度加 ...

  10. asp.net读取用户控件,自定义加载用户控件

    1.自定义加载用户控件 ceshi.aspx页面 <html><body> <div id="divControls" runat="ser ...

最新文章

  1. 2019年上半年收集到的人工智能Python编程干货文章
  2. 云服务器 ECS快速入门:远程连接 ECS 实例
  3. 因贡献Linux社区被Linus关注,受公司10万期权奖励!酷派重回大众视野...
  4. java免安装工具包_Java1.8安装及环境变量配置
  5. C# ListView添加DragDrop
  6. Webserver推送技术
  7. 《C#本质论》读书笔记(十二)构造器 @ Lennon
  8. 【源码分析】微信小程序 - 01表单组件 - 01button - 实践
  9. ubuntu 安装java_Hadoop3.1.3安装教程_单机/伪分布式配置
  10. 系统封装接口层 cmsis_os
  11. 判断单链表是否存在环及环的入口点
  12. [POJ2456]Aggressive cows(贪心,二分查找)
  13. Eclipse离线安装Svn插件
  14. 文献基础知识、ISI、SCI、JCR
  15. 学习中科院杨力祥c++
  16. 打印机 计算机 usb,电脑没法识别打印机(USB接口)
  17. 对于 ACM程序设计选修课的感想
  18. KUI-金山界面库 自定义消息
  19. Typora下载及安装教程
  20. 一个微信可以有多个头像昵称了

热门文章

  1. 十年磨一剑:梳理淘宝网技术架构的发展
  2. 用Unity3D实现打飞碟游戏
  3. 网页中插入视频的代码小技巧
  4. 2014计算机三级网络,2014计算机三级网络技术知识点.doc
  5. CruiseControl 安装配置
  6. JavaScript 开发者的 5 款必备工具
  7. 解构领域驱动设计--思维导图
  8. Redis 入门指南三:数据类型
  9. 《Arduino奇妙之旅:智能车趣味制作天龙八步》一1.4 轰!
  10. 科技文献检索(五)——检索原理