简单OCX控件的开发
简单OCX控件的开发
新建工作空间
首先新建一个工作区,作为这个小Demo的文件所在目录
在上图工作空间名称中,填入工作空间名称并点击确定。出现如下界面,工作区名称根据你自己填写的名称而定。
新建工程
点击新建->工程出现如下界面:
在工程名称中填入你所建立的工程的名字,选择MFC ActiveX ControlWizard 选项,并选择添加到当前工作空间,点击确定
你可以在fireView中看到整个工程的文件目录,我的文件目录如下所示:
之后你就可以根据你的需要,来开发OCX控件了。
3. 添加方法
如果你需要添加方法,你可以在工作空间中的ClassView中右击如箭头所示部分,添加你的控件中要使用的方法。
当你右击类视图中_DIDCardReader并点击列表中的Add Method 选项时,会出现如下界面:
此时,你可以在Externel name中填写函数名(Internal name 会根据你填写的Externel name自动填写),在Return type中选择返回类型,Parameter list中添加你需要的参数,类型可选。填写完成点击OK。
此时在你工程目录的.odl 文件中就会产生一条定义
如图所示:
前面的id 表示你当前创建的方法的id,后面的内容类似于函数的声明。
此外,函数会在如图所示cpp文件中创建一个函数体
4. 添加回调函数
如果你需要添加回调函数,你可以在右击下图所示位置,并在右击菜单选项中点击Add Event。
出现如下界面:
在Externel name 中填入回调函数名,Internel name 自动填写,在Parameter list里添加参数列表。
和添加方法一样,回调函数也会在.odl 中声明,在.cpp文件中创建函数体。
如下图所示:
5. 添加之后的文件目录与类视图
在添加完成你需要的函数和方法之后,整体的工程目录会如下所示:
添加之后的类视图大体如下:
- 添加消息处理函数WindowProc并添加相关代码
如果你在开发过程中还需要一些其他的函数,比如消息处理等,你可以在
在类视图界面右击如下图箭头位置并点击 Add Virtual Function 添加虚函数。
点击之后出现如下界面:
选择你要使用的函数,这里我选择WindowProc 添加通知函数并点击确定,确认添加。
之后你就可以在.cpp文件中找到相应的函数体,并添加相关代码了。
例如,我在消息通知函数中添加如下示例代码,向窗口抛出一个消息。
7. 控件注册并获取CLSID
当你的控件开发完成,需要调用时,你可以先编译,之后再.odl中找到uuid,
注意:一般是最后一个,或者你找到和下图类似格式的部分,复制相应的uuid。
8. 新建HTML并编写JS调用OCX控件
在js调用时,新建一个OBJECT标签,添加classid属性,并把刚才找到的uuid作为它的值。
Js在调用时,先把uuid绑定到一个id下,使之能被该id调用
其中for的值为绑定控件的id, event 是回调函数。
之后你也可以在JavaScript中使用控件的一些函数,也可以通过回调函数来传递参数等。
调用结果:
9. 注册安全对象
此外,你还可以在如下箭头所指文件中将控件注册为安全对象,用来去掉每次调用控件弹出的安全提示窗口
我添加的部分代码如下:
PS: 具体实现方法自己去找吧,网上一大把
// 标记控件初始化安全.
// 创建初始化安全组件种类
HRESULT hr = CreateComponentCategory(CATID_SafeForInitializing,L"Controls safely initializable from persistent data!");
if (FAILED(hr))return hr;
// 注册初始化安全
hr = RegisterCLSIDInCategory(CLSID_SafeItem, CATID_SafeForInitializing);
if (FAILED(hr))return hr;// 标记控件脚本安全
// 创建脚本安全组件种类
hr = CreateComponentCategory(CATID_SafeForScripting, L"Controls safely scriptable!");
if (FAILED(hr))return hr;
// 注册脚本安全组件种类
hr = RegisterCLSIDInCategory(CLSID_SafeItem, CATID_SafeForScripting);
if (FAILED(hr))return hr;
简单OCX控件的开发相关推荐
- MFC ActiveX (ocx)控件的开发
前言 ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM). ActiveX控件是一种实现了一系列特定接口而使其在使用和外观上更象一个 ...
- 海康威视视频ocx控件开发总结
因工作需要,需要开发一个海康威视的视频ocx控件,嵌入到intouch,组态王一类的组态软件中使用. 之前从没做过ocx控件的开发,连MFC的开发也没做过,折腾了几天,终于基本完成.记录一下这个过程. ...
- VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程
VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程 开篇语:最近在弄ocx控件发布到asp.net网站上使用,就是用户在使用过程中,自动下载安装ocx控件.(此文章也是 ...
- [转]C#开发ActiveX控件,.NET开发OCX控件案例
引自:百度 http://hi.baidu.com/yanzuoguang/blog/item/fe11974edf52873aaec3ab42.html 讲下什么是ActiveX控件,到底有什么 ...
- DELPHI 开发的 OCX 控件在 MFC 程序中编辑框快捷键不好使的解决
公司一个大型的项目中使用了 DELPHI 来开发 OCX 控件做数据库的管理,但是GIS图形系统使用 MFC 开发,最后将 OCX 嵌入到 MFC 程序中作为一个完整的系统交付用户使用,但是在使用过程 ...
- CAD制图, 机械CAD, 建筑CAD, 电力CAD, CAD设计, 数控与CAM, DXF导入\导出, 打印, 软件开发, VC++源代码,OCX 控件源程序2018
CAD制图, 机械CAD, 建筑CAD, 电力CAD, CAD设计, 数控与CAM, DXF导入\导出, 打印, 软件开发,VC++源代码,OCX 控件源程序2018 -- 100%源码开放企业级CA ...
- MFC .ocx控件开发
本文将介绍ocx的含义,以及如何利用MFC创建ocx控件. 1.ocx控件的含义 OCX 是对象类别扩充组件(Object Linking and Embedding (OLE) Control Ex ...
- MFC中开发ocx控件,html容器收不到ocx的事件Event
问题背景: MFC开发ocx控件,主窗口就是ctrl类,主窗口类中调度接口和事件映射添加,执行OK,外部html容器中接收事件成功,如下: ctrl.h中声明事件映射函数 void EVTPENSIG ...
- Visual Studio开发MFC项目OCX控件添加使用控件方法
1.在Windows系统中注册OCX控件 在OCX控件目录,右键新建一个文本文档,将文件名和扩展名改为"双击注册.bat",添加如下注册脚本: cd /d %~dp0 RegSvr ...
- 在C#开发WPF桌面应用程序调用OCX控件
公司需要开发开发C#的WPF桌面应用程序演示软件,该软件调用高拍仪设备使用的的两个x86版本的OCX组件用于显示和控制高拍仪设备. 一.开发环境: 操作系统: Windows 10 企业版操作系统 开 ...
最新文章
- DHCP网络服务器的实现
- Soul网关发布2.2.0:让高性能网关变得如此简单!
- list(列表) python
- ssl初一组周六模拟赛【2018.4.21】
- HTML浮动导致高度塌陷,HTML 文档流,设置元素浮动,导致父元素高度无法自适应的解决方法(高度欺骗)...
- Python深入06 Python的内存管理
- UIViewController内存管理
- 信息源按加工深度划分_工程勘察时如何划分地层?勘查总工实力整理
- c/c++中关于sizeof、strlen的使用说明
- python得语言编程模式_一图看懂编程语言迁移模式:终点站是Python、Go、JS!
- 刘铎 计算机学院,离散数学及应用 [刘铎 编著] 2013年版
- python制作动态时钟_python实现简易动态时钟
- android 百度地图api切换城市,【百度地图API】关于如何进行城市切换的三种方式...
- 基于 Python 的时序模型——AMIRA模型
- 小程序获取链接中的参数
- python创建列表副本_解决Python使用列表副本的问题
- 微信客服接口 报错40003
- 叮! Q币派送中,快来看看你中奖了吗?
- h5页面是html5么,H5是什么?5分钟就能全面了解什么是html5页面
- html中设置浏览器解码方式
热门文章
- Win11系统的显卡驱动安装的详细方法步骤
- win764位安装vs2010sp1补丁卡在kb983509解决办法低于40分钟
- webservice框架jersey简单总结
- php怎么用origin打开,[转载]origin 使用技巧 (4)
- 微信小程序游戏开发│石头剪刀布游戏(附源码)
- Photoshop插件-黑白(一)-脚本开发-PS插件
- 图像影音型计算机主板选择什么,开启4K新时代 七款家用影音主板推荐
- Uipath文档教程
- javasript |仿百度换肤效果
- 搭建结构光三维扫描仪(基于TI资料,PointGrey相机+DLP投影仪搭建成的)