在此,小编就介绍下ActiveX控件的基本操作方法以及如何在VS2010下使用控件,我们以一个程序为例,

(1)      打开VS2010编译器(右键以管理员身份运行,因为ActiveX需要注册),选择MFXActiveX控件程序,在名称中输入 test(本例中设置为test)

首先打开类视图选项卡,发现产生了一些类,我们简单解释下3个类的作用,CTestApp这个类派生于COleControlModule类,COleControlModule类派生于CWinApp类,我们可以认为CTestApp类相当于单文档模板中应用程序类。

CTestCtrl类使我们主要操作的类,我们一些的操作基本都在这里完成,这个类可以相当于单文档程序中的CWind类(窗口类),记住,我们对控件窗口进行的操作都在这个类中完成。

CTestProppage类派生于对话框CDialog类,此类用来显示控件的属性页的。

接下来,类视图下还有个选项,我们展开它_Dtest和_D TestEvents,他们前面的图标很像一个勺子,表示这是“接口”,接口是控件与外部程序通信连接的协议,接口中有函数,这些函数式抽象基类,而完成这些函数的是在CTestCtrl中吗,可以这样理解,外部程序调用接口中的函数实际就是调用CTestCtrl中的函数。

(2)      了解了相关的知识后,我们开始写一个较为简单的钟表ActiveX控件,首先我们先生成一下(F7),让控件注册到注册表中(所用控件在使用时都必须要注册)

(3)      我们打开类视图,展开CTestCtrl类,其中有一个函数OnDraw()函数,该函数与单文档程序中的OnDraw()函数使用原理一样,都是在窗口发生重绘的时候调用,在此函数中写三行代码,并且组合式掉FillRect()和Ellipse()函数(矩形和椭圆)

(4)      为了让,时钟可以实时“动起来”我们可以加一个定时器,我们要在控件窗口创建完成之后设置一个定时器,所以我们响应WM_CREATE消息,我们利用类向导建立消息处理函数,并在此添加如下代码

(5)      然后,我们添加WM_TIMER消息响应函数,为了响应定时器,并添加如下代码

(6)      我们已经完成一个ActiveX控件的基本建立,点击编译(F7),然后打开VS2010自带的容器测试程序(小拜在上一篇文章中已经详细介绍了如何设置VS自带的容器测试程序),发现控件上时间正确的运行。

下一篇小编会展示如何向ActiveX控件中添加“事件”“属性”“标准时间”“自定义事件”等一些相关操作。

ActiveX控件的基本操作方法以及如何在VS2010下使用控件的更多相关文章

  1. RelativeLayout布局下实现控件平分空间

    起源:使用惯LinearLayout的朋友都知道,若想实现对屏幕的等分,只需要设置Layout_weight的值即可. 可是在RelativeLayout布局下实现等分却不是那么容易. 下面就简单介绍 ...

  2. Easyui下的点击回车键跳转到下个控件

    在Easyui框架下,JavaScript 中的 onKeyDown事件居然失效了.所以使用了另外的函数去实现点击回车键跳转到下个控件. /** * 点击回车键跳转到下个控件; * @param ol ...

  3. 解决VS2010使用mscomm控件无法接收数据的问题【转】

    之前有用过VC6的mscomm控件.所以这次也想继续用此控件实现此功能,结果没想到刚一上手还真的绕了不少弯子.主要是因为VC2010下对mscomm控件的添加,以及对控件成员变量的添加有点小繁琐,特此 ...

  4. 解决VS2010使用mscomm控件无法接收数据的问题

    如果你正在使用2010,并且想用mscomm控件,遇到如下问题,那你可以看看这篇文章: 1. 添加了mscomm控件以及对应的控件变量以后发现以前mscomm的成员函数,类似setsettings() ...

  5. 如何在vs2010中添加Picture控件

    1.新建项目,并在对话框控件中拖入picture控件,并做如下设置 2.在picture控件的属性栏需要进行如下修改:ID需要修改,不能为static ID是控件的唯一标识,PictureCtrl(p ...

  6. Android 使用代码主动去调用控件的点击事件(模拟人手去触摸控件)

    使用代码主动去调用控件的点击事件(模拟人手去触摸控件) //View 可以是LinearLayout,Button,TextView View.performClick();

  7. js,onblur后下一个控件获取焦点判断、html当前活跃控件、jquery版本查看、jquery查看浏览器版本、setTimeout&setInterval

    需求: input控件在失去焦点后直接做验证,验证通不过的话,显示相应错误.但是如果失去焦点后点击的下个控件是比较特殊的控件(比如,退出系统),那么不执行验证操作,直接退出系统(防止在系统退出前,还显 ...

  8. Delphi下使用Oracle Access控件组下TOraSession控件链接

    Delphi下使用Oracle Access控件组下TOraSession控件链接数据库,使用  orsn1.Options.Direct:=true;  orsn1.Server:=IP:Port: ...

  9. DevExpress控件GridView挂下拉控件无法对上值

    下拉控件使用RepositoryItemLookUpEdit,加入如下事件进行处理. repositoryItemLookUpEdit1.CustomDisplayText += new DevExp ...

随机推荐

  1. boost:exception使用实例

    /************************************************************************/ /*功能描述: boost exception使用 ...

  2. 学习BFC

    BFC全称是Block Formatting Context,即块格式化上下文.它是CSS2.1规范定义的,关于CSS渲染定位的一个概念.要明白BFC到底是什么,首先来看看什么是视觉格式化模型. 视觉 ...

  3. 打造一个自动检测页面是否存在XSS的小插件

    前言: 还记得刚玩Web安全时,就想着要是能有一个自动挖掘XSS漏洞的软件就好了.然后我发现了Safe3.JSky.AWVS.Netsparker等等,但是误报太多,而且特别占内存.后来发现了fidd ...

  4. hdu 2255 奔小康赚大钱 KM算法

    看到这么奇葩的题目名我笑了,后来这么一个裸的KM调了2小时我哭了…… 这是个裸的KM算法,也没什么多说的,主要是注意多组数据时,每次都要把各种数组清空啊,赋值啊什么的,反正比较麻烦.至于为什么调了2小 ...

  5. php无法加载Memcache缓存模块问题及Memcache的安装

    今天早上去迁移网站发现打开网站报错 然后我去phpinfo.php看了一下,果然我的测试页里面有加载到Memcache这个模块,如下图: 这时候,既然发现了问题的所在我们就要去排查问题,当前这个问题呢 ...

  6. Java编程性能优化

    1尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 第一,控制资源的使用,通过线程同步来控制资 ...

  7. Lua 练习中的Bug 以及日志

    使用 Lua 中的table.getn获得数组的table的长度:运行失败-- > t ={1,2,3 } > print(table.getn(t)) stdin:1: attempt ...

  8. 二,CentOS minimal 网络配置及用yum安装所需软件

    CentOS minimal在刚安装完成后,ifconfig一下没发现网卡,是因为使用最小安装的网卡默认没启动,设置配置文件很简单,如下: 1.打开配置文件 vi /etc/sysconfig/net ...

  9. 问题记录-Activity跳转后显示空白界面

    前两天写一个简易安卓记事本,从主界面跳转到添加内容界面总是显示空白. 明明有setContentView xml文件在可视化开发环境下也正常显示.后经前辈指点,原来是复写onCreate函数时出现了问 ...

  10. 中兴软件编程规范C/C++

    Q/ZX 深圳市中兴通讯股份有限公司企业标准 (设计技术标准) Q/ZX 04.302.1–2003      软件编程规范C/C++                               20 ...