MFC动态加载OCX控件
最近朋友遇到一个问题,项目需要多个相同功能但接口不一的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控件相关推荐
- VB6.0动态加载ActiveX控件漫谈[转]
[转帖]VB6.0动态加载ActiveX控件漫谈http://www.7880.com/Info/Article-4b559560.html 熟悉VB的朋友对使用ActiveX控件一定不会陌生,众多控 ...
- 动态加载用户控件的怪问题
动态加载用户控件的时候,会因为调用一些控件的一些属性和方法而造成控件命名混乱. 因为add 一个用户控件或者 loadcontrol 的时候 如果没有指定控件的id,clientid,那么它会初始id ...
- 使用RenderControl方法实现动态加载用户控件
nsus.NET相信很多网友们均会动态加加载用户控件.如Insus.NET以前写的博文: http://www.cnblogs.com/insus/archive/2012/04/16/2451085 ...
- 解决IE不能加载OCX控件问题(一)
OCX是VS2010开发 在共享DLL中使用MFC 运行库是多线程选择的是MD IE浏览器打开嵌入OCS的页面后,无法加载OCX,如下图: 在IE浏览器打开该URL后,会提示"IE浏览器已停 ...
- Asp.net2.0动态加载用户控件的三种方法
方法一: 直接拖放的用户控件 <!--这是某个aspx页--> ..... <%@ Register Src="TestControl.ascx" TagName ...
- vbnet加载ocx控件不能生成窗体_解决VB6.0中不能加载MSCOMCTL.OCX的错误提示
VB6.0毕竟是很古老的开发工具了,其对所使用的第三方组件依赖性比较强,例如在打开从其它电脑上拿来的VB6.0的软件(系统)的工程文件(源代码)时,经常会遇到"不能加载MSCOMCTL.OC ...
- IE11 死活无法加载OCX控件
依次展开注册表到HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main分支 新建一个DWORD32值,并将其命名为TabProcGrow ...
- 【Android 逆向】类加载器 ClassLoader ( 使用 DexClassLoader 动态加载字节码文件 | 拷贝 DEX 文件到内置存储 | 加载并执行 DEX 字节码文件 )
文章目录 一.拷贝 Assets 目录下的 classes.dex 字节码文件到内置存储区 二.加载 DEX 文件并执行其中的方法 三.MainActivity 及执行结果 四.博客资源 一.拷贝 A ...
- CGContextRef绘图-iOS球形波浪加载进度控件-HcdProcessView详解
简书也有发布:http://www.jianshu.com/p/20d7... <iOS球形波浪加载进度控件-HcdProcessView>这篇文章已经展示了我在项目中编写的一个球形进度加 ...
- asp.net读取用户控件,自定义加载用户控件
1.自定义加载用户控件 ceshi.aspx页面 <html><body> <div id="divControls" runat="ser ...
最新文章
- 2019年上半年收集到的人工智能Python编程干货文章
- 云服务器 ECS快速入门:远程连接 ECS 实例
- 因贡献Linux社区被Linus关注,受公司10万期权奖励!酷派重回大众视野...
- java免安装工具包_Java1.8安装及环境变量配置
- C# ListView添加DragDrop
- Webserver推送技术
- 《C#本质论》读书笔记(十二)构造器 @ Lennon
- 【源码分析】微信小程序 - 01表单组件 - 01button - 实践
- ubuntu 安装java_Hadoop3.1.3安装教程_单机/伪分布式配置
- 系统封装接口层 cmsis_os
- 判断单链表是否存在环及环的入口点
- [POJ2456]Aggressive cows(贪心,二分查找)
- Eclipse离线安装Svn插件
- 文献基础知识、ISI、SCI、JCR
- 学习中科院杨力祥c++
- 打印机 计算机 usb,电脑没法识别打印机(USB接口)
- 对于 ACM程序设计选修课的感想
- KUI-金山界面库 自定义消息
- Typora下载及安装教程
- 一个微信可以有多个头像昵称了