MFC制作OCX
1、新建工程
注意选择显示时注册,免得后面又去手动注册


2、工程解释,一般ocx是看类视图而不是解决方案
①、xxxApp:类似整个工程的入口,有xxxApp.h和xxxApp.cpp,工程的初始化,注册反注册,一般不用管
②、xxxCtrl:核心代码处,属性、方法、函数的声明及实现
③、xxxPropPage:ocx的属性,类似于Button的属性
④、xxxLib:这个ocx的lib,添加外部调用的属性和方法都在这里添加
⑤、在_xxxOCX中双击下面的方法,会进入xxx.idl文件:这个文件是提供给外部接口的文件,如下图MFC自己给的定义:

这里面可以看到定义的方法;还可以改版本

3、添加属性、方法、函数

①、属性,在Lib中的_xxxOCX中右键添加属性,属性是这个ocx的某些状态体现

②、方法,在Lib中的_xxxOCX中右键添加方法,方法是提供给外界使用的方法

③、函数,函数是内部调用的一些算法,手动在xxxCtrl.h和xxxCtrl.cpp中声明和定义
4、生成如果注册成功,即可使用。在任意.NET framework里可以找到这个COM组件
ps:
1、ocx的属性和方法默认都是protected的,说明只能由ocx自己和子类访问
2、默认的ocx界面是一个椭圆,这在xxxCtrl.cpp的OnDraw中默认定义的,如果需要改变外形可以在这里更改代码

3、返回值或者参数全是基本数据类型,如果需要是自定义结构体需要转换,具体怎么转,目前还不清楚
转换:https://blog.csdn.net/xumaojun/article/details/39024871
ocx入门:https://blog.csdn.net/wangkui1331/article/details/53763990
MFC制作OCX的更多相关文章
- c#调用c++制作的基于mfc的ocx控件
原文:http://blog.csdn.net/yhhyhhyhhyhh/article/details/51286926 原文中有问题部分已修改. c#调用c++制作的基于mfc的ocx控件 ...
- VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程
开篇语:最近在弄ocx控件发布到asp.net网站上使用,就是用户在使用过程中,自动下载安装ocx控件.(此文章也是总结了网上好多人写的文章,我只是汇总一下,加上部分自己的东西,在这里感谢所有在网 ...
- mfc制作ActiveX
转:https://blog.csdn.net/hkcsdn/article/details/52908748 前言 ActiveX是Microsoft对于一系列策略性面向对象程序技术和工 ...
- MFC制作简单通讯录程序
学习c++和MFC一段时间了,苦于没有项目实战,所以自己写了一个简单的简单通讯录程序,以前用c#写简单很多,例程是这本书上的实例,我的第一个winform程序也是从这本书上学的,总结c#写的话更简单, ...
- C#调用托管ocx、dll
前篇文章是调用非托管,比较复杂,这里是调用托管,很简单[所以在遇到非托管dll时可以通过二次封装成托管的方式,再通过这边文章来使用] 1.注意这是基于COM的ocx或者dll,所以用regsvr32先 ...
- MFC中开发ocx控件,html容器收不到ocx的事件Event
问题背景: MFC开发ocx控件,主窗口就是ctrl类,主窗口类中调度接口和事件映射添加,执行OK,外部html容器中接收事件成功,如下: ctrl.h中声明事件映射函数 void EVTPENSIG ...
- 基于MFC的Media Player播放器的制作(1---播放器界面的布局)
| 版权声明:本文为博主原创文章,未经博主允许不得转载. 通过上面的一些预备知识,我们现在就可以自己来制作基于MFC的播放器了,接下来我们讲的是使用MFC制作我们播放器 的界面. 首先,我们我们打 ...
- JAVASCRIPT 调用 OCX 的那些坑
这个东西我之前已经想写了,但是在我写完"制作OCX","MFC应用OCX" 之后,html 调用OCX 就一直不成功,搞了好久,都快要放弃了.昨天领导需要我这边 ...
- 最全的基于MFC的ActiveX控件开发教程
浏览器插件之ActiveX开发(一) 一般的Web应用对于浏览器插件能不使用的建议尽量不使用,因为其涉及到安全问题以及影响用户安装(或自动下载注册安装)体验问题.在有特殊需求(如涉及数据安全的金融业务 ...
随机推荐
- iOS 项目架构tabbarController 嵌套 navbarController
简单思路: 进入APP,首先加载 splashVC,加载完成之后,在viewDidAppear里跳转到loginVC,(这里一定要在viewDidLoad方法里新建loginVC跳转). 登陆成功之后 ...
- WebWorker的浏览器"异步线程"
worker新线程: 1.通过postMessage( data ) 方法来向主线程发送数据; 2.绑定onmessage方法来接收主线程发送过来的数据: 3.worker外部文件不允许使用win ...
- Dungeon Master---2251(bfs)
http://poj.org/problem?id=2251 有一个三维的牢房地图 求从S点走E点的最小时间: #include<stdio.h> #include<string.h ...
- 【python-opencv】17-形态学操作-腐蚀与膨胀
形态学操作其实就是改变物体的形状,比如腐蚀就是"变瘦",膨胀就是"变胖",看下图就明白了: 形态学操作一般作用于二值化图(也可直接作用于原图),来连接相邻的元素 ...
- Linux和Windows下查看环境变量方法(转)
add by zhj: 本文中的Linux是指Ubuntu14.04 以前我对环境变量有误解,以为环境变量就是PATH这个变量.其实环境变量其实有很多,PATH仅仅是其中一个而已,比如在Windows ...
- dedecms用keyword标签调用含有某一关键词的文章
前面我们探讨了调用{dede:likewords}为dedecms添加相关搜索词,如果要调用含有某一关键词的文章可以实现吗?比如ytkah的网站有很多文章中含有“微信”的词,那么想在网站首页.频道页. ...
- Mac SVN版本从1.9降到1.8
假设系统已安装brew,在终端执行下列命令: brew update brew install subversion18 echo 'export PATH="/usr/local/opt/ ...
- 包管理 ----- Linux操作系统rpm包安装方式步骤
Linux操作系统rpm包安装方式步骤 2016年08月04日 07:00:26 阅读数:17140 转自 : http://os.51cto.com/art/201003/186467.htm 特别 ...
- PHP学习必读的20本书
PHP相关<PHP程序设计>(第2版) –PHP语法和入门最好的书<PHP5权威编程> –PHP入门后升级书<深入PHP:面向对象.模式与实践>(第3版) –理解P ...
- Linear Regression Using Least Squares Method 代码实现
1. 原理 2. Octave function theta = leastSquaresMethod(X, y) theta = pinv(X' * X) * X' * y; 3. Python # ...