转自:https://blog.csdn.net/babykangaroo/article/details/45795079

本文是入门学习ActiveX的学习笔记,属于系统学习整个框架部分,具体细节自己写代码时再深入。学习参考书籍是《MFC Windows程序设计(第二版)》,使用开发环境是VS2010。总共分为三部分:

1: ActiveX控件基础;

2:创建ActiveX控件;

3:在应用程序中使用ActiveX控件;

第一部分 ActiveX控件基础

一、基本概念

ActiveX控件是一个COM对象,它是实现了某些接口而使自己的外观和行为变得类似于控件的COM对象。它具有属性、方法和事件,分别解释这三项。

1:属性。指控件的一些参数,如背景颜色等。在设计ActiveX控件时,要预见到所有用户能修改的控件外观或行为,并使它们成为控件的特性,可以通过编程公开这些属性。我理解是类似于C++类里的成员变量。

2:方法。调用它们执行有用的工作。我理解类似于C++类里的成员函数。

3:事件。指从控件发给容器的通知。“容器”指拥有ActiveX控件的窗口。窗口控件通过发送消息给它们的所有者发出通知,而ActiveX控件通过激发事件给它们的容器发送通知。当设计ActiveX控件时,就应该考虑容器可能会对哪些发生在控件里的事情感兴趣,并把它们设计为ActiveX事件。

属性、方法和事件分为自定义型和备用型。

自定义型指自己定义的,可以自定义它们的名字,并分配调度ID。

备用型指使用ActiveX控件规范中已经定义过的、指定的名称和调度ID。

ActiveX具有活动和不活动两种状态。

综上所述,ActiveX控件定义如下:

ActiveX控件是一种在窗口中控件,是COM对象,它支持方法、属性以及事件,在应用程序和web网页上都可以使用它们。

二、ActiveX控件容器

也是一个复杂的COM对象。具体先不讨论。

三、环境

使用MFC,因为MFC简化了ActiveX控件和控件容器的编写,提供了所要求的COM接口的实现,封装了连接ActiveX控件和控件容器的协议。也就是说,MFC已经做了大部分的工作。

第二部分 创建ActiveX控件

我看的这本书籍例程都是VC++6.0环境下开发的,但是现在使用的是VS2010,有挺大的差别,所以在这里把使用VS2010创建ActiveX控件的过程中贴图出来。大致有四大步。

一、创建MFC ActiveX Control工程;

step1:

step2:点击OK,Next;

step3:Run-time License是指是否需要许可权来使用控件。

step4:默认Next就可以了。

step5: 点击“Finish”。

二、给控件添加属性;

打开类视图。

三、给控件添加方法;

四、添加事件

以上只是演示属性、方法和事件在VS2010里是在哪里添加的。

做完以上之后,编译,会得到一个几乎没有任何功能的ActiveX控件。这时候需要测试ActiveX是否能正常使用。VC自带一个测试工具,ActiveX Control Test Container。VC6.0中在Tools菜单下就可以找到:TstCon。但是VS2010下没有,需要自己添上去。http://m.blog.csdn.net/blog/u014028070/38341147这个网址讲的很好。

如何单步调试ActiveX控件呢?在VS2010中,选中工程名--右键--properties--Debugging--Command,将TstCon.exe路径添加进去,确定。回到工程,在需要调试的地方打上断点,F5即可运行调试。

第三部分 在MFC应用程序中使用ActiveX控件

1、注册控件。

由于ActiveX是一个COM对象,所以使用时需要注册。在使用VC创建ActiveX控件时,作为处理过程的一部分,控件会被自动注册。但是要是控件提供给别人,就需要注册。注册有两种方法。

一是提供一个安装程序,通过程序自动注册。二是使用Regsvr32实用程序。

Regsvr32 XXXX.ocx  注册

Regsvr32 \u XXXX.ocx 反注册

2、创建一个MFC 对话框程序。然后将ActiveX控件插入。在工具箱里右键弹出以下,然后选择Choose Items。

将MyActiveX打勾,OK。在工具箱里就可以看到ocx控件了。然后像添加其他控件一样拖拽到对话框上即可。

或者也可以在需要插入控件的地方点击右键,弹出,选择自己创建的控件即可。

MFC的ActiveX控件 - 1相关推荐

  1. 使用MFC开发ActiveX控件

    摘要: 本文对COM组件中的ActiveX控件的MFC开发方法进行了介绍,讲述了用户自定义和库存属性.方法以及事件的添加方法和属性页的制作过程.使读者能够掌握基本的MFC ActiveX开发方法. 前 ...

  2. 基于MFC的ActiveX控件开发

    转自:http://www.cnblogs.com/lidabo/archive/2012/12/04/2800921.html ActiveX 控件是基于组件对象模型 (COM) 的可重用软件组件, ...

  3. MFC添加ActiveX控件

    在VC6.0 中,在对话框总右键,添加 ACtiveX控件,选中后添加,再右键添加变量时,会自动生成包装类.每个类一个文件,通常会产生很多文件.其中主类集成自CWnd. 也可以用类向导,从类型库生成类 ...

  4. 关于错误码0x80040154 MFC中ACtiveX控件没有注册的正确解决方案

    今天遇到一个问题,以前VC++6.0做好的工程文件在另一台电脑上无法运行,并且报错, CoCreateInstance of OLE control {67397AA3-7FB1-11D0-B148- ...

  5. ActiveX控件的MFC设计之旅-第12步 .

    在VB和类似的包容器在属性视图中显示控件的属性,特别是枚举类型的属性时,会有一个下拉按钮,当点击该按钮时,会弹出一个列表框,显示一些友好的文字,供用户选择.而对于某些特殊的属性,如字体等,还会弹出一个 ...

  6. ActiveX控件的MFC设计之旅-第15步

    在VB和类似的包容器在属性视图中显示控件的属性,特别是枚举类型的属性时,会有一个下拉按钮,当点击该按钮时,会弹出一个列表框,显示一些友好的文字,供用户选择.而对于某些特殊的属性,如字体等,还会弹出一个 ...

  7. VC6开发视频监控ActiveX控件总结

    总结前段时间在VC6下使用MFC开发视频监控控件过程中遇到的一些问题. 1.获取控件当前所在路径,用于读取该目录下的INI配置文件 获取配置文件路径 2.获取当前运行控件的电脑上的固定盘符列表,用于本 ...

  8. ActiveX控件如何去除在Web使用时的安全警告

    Web上使用ActiveX控件时,用两种安全防护,一是下载,二是使用.对于未签名的ActiveX控件,在IE的选项中有相应处理.我们不考虑下载,假定控件已在用户机注册(可能是额外的小安装包),因为未签 ...

  9. 编写ActiveX控件及其打包方法

    1.ActiveX控件概述 ActiveX控件是基于组件对象模型 (COM) 的可重用软件组件,广泛应用于桌面及Web应用中.在Windows操作系统以OCX结尾的文件,OCX代表"对象链接 ...

最新文章

  1. Python爬虫2-GET_POST与开发者工具
  2. OpenHarmony的介绍
  3. ng-repeat 与ng-switch的简单应用
  4. js return的值取不到_【JS基础】隐式转换(一)
  5. php的array_merge函数
  6. Android 扫描二维码demo
  7. vue——单文件组件
  8. Spring : ApplicationContext和BeanFactory
  9. Python 函数(三)
  10. Java Web基础回顾 —JQuery DOM
  11. uploadify ajax,Uploadify预防未来的Ajax请求
  12. Power bi 3.2 堆积柱形图
  13. pulseaudio 播放卡顿的解决方法
  14. java 编写metro风格_纯Javascript实现Windows 8 Metro风格实现
  15. 《SLAM十四讲》7.6 三角测量 triangulation.cpp
  16. IPv6邻居发现协议NDP
  17. Dell 14R N4120笔记本电脑加固态硬盘
  18. 唐老院长振绪追悼会感言
  19. Package OpenCV not found? Let’s Find It.
  20. 软件测试工程师岗位职责

热门文章

  1. 用苹果M1电脑,打Windows游戏,是种什么体验?
  2. 推荐一款开源数据库设计工具,比PowerDesigner更好用!
  3. 【python】7-5 p021计算邮资
  4. C#委托与C++函数指针的区别
  5. java实现一个socks5代理 一了解socks5协议
  6. STM32智能定位系统保姆级教程(一)硬件介绍
  7. 【目标跟踪Opencv与fDsst总结(C++程序)】
  8. ChatGPT 拓展资料:AI大模型之美 -重新出发,让我们学会和AI说话
  9. 数码管在c语言中显示时间,如何利用单片机数码管程序模拟是时钟显示时间?...
  10. 纷享销客携手百捷、锐之旗走进湖南竞网,探索互联网营销创新