在此,小编就介绍下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. NHibernate输出SQL语句

    用了NHierbate之后,很少需要写原生的SQL语句,由于总是看不到SQL语句,所以有时候对SQL调优非常不利.因此产生了让NHibernate输出它所生成的SQL语句的想法,以便于后续调优. 一. ...

  2. Oracle笔记 十一、PL/SQL函数和触发器

    --创建函数 create or replace function add_sal(sSal number) return number is begin if (sSal > 5000) th ...

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

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

  4. JS创建对象的方式

    1.采用直接量创建方式:系统会使用new方式自动创建对象 var o = {x:1,y:2,z:2}; 2.采用new关键字创建对象:采用构造函数创建对象 var o = new Object();/ ...

  5. 使用css实现全兼容tooltip提示框

    在上一篇文章中,使用css实现了一个全兼容的三角形图标,这个三角型图标可以使用于多种场景,比如下拉图标.多级菜单等,这篇文章我们使用这个图标通过纯css来实现一个我们常见的tooltip提示框. 最终 ...

  6. oracle 数组类型

    create or replace function my_test(p_str varchar2) return number as --普通变量 v_var ); --固定长度数组 type v_ ...

  7. Oracle登录时提示错误,导致用户无法登录

    Oracle登录时提示错误,导致用户无法登录,错误如下 ------------------------------------------------------------------------ ...

  8. Knockout.Js官网学习(text绑定)

    前言 text 绑定到DOM元素上,使得该元素显示的文本值为你绑定的参数.该绑定在显示<span>或者<em>上非常有用,但是你可以用在任何元素上. 简单绑定 Today's ...

  9. centos6.7下编译安装lamp环境

    编译C源代码: 前提:提供开发工具及开发环境 通过“包组”提供开发组件,CentOS 6: "Development Tools", "Server Platform D ...

  10. 【原】SBT构建Scala应用

    [转帖] 原文地址:https://github.com/CSUG/real_world_scala/blob/master/02_sbt.markdown 尊重版权,尊重他人劳动成果,转帖请注明原文 ...