在此,小编就介绍下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. excel快速复制大量公式的方法

    excel中快速复制公式的方法有很多,适合复制大量公式的方法有两个,一个是拖动该单元格右下角,向下拖动即可快速填充下面的单元格,实现公式的快速复制.这种方法适合数据量不大的时候使用,如果数据很多,有2 ...

  2. 【MySQL】MySQL无基础学习和入门之二:MySQL的安装

    安装MySQL安装一般分为源码包编译安装.分发包.rpm包安装和yum安装,四种安装方式有一些区别,对应的适用场景也不一样. 源码包:源码包就是程序源代码包,其中包含程序代码文件,这些代码文件是文本型 ...

  3. windows 2003 修改远程桌面连接数详细方法

    Windows Server 2003默认情况下允许远程终端连接的数量是2个用户,我们可以根据需要适当增加远程连接同时在线的用户数. 单击“开始→运行”,输入“gpedit.msc”打开组策略编辑器窗 ...

  4. HTML5上传图片预览

    <!DOCTYPE html> <html> <head> <title>HTML5上传图片预览</title> <meta http ...

  5. XCode 7.1 安装 Alcatraz包管理器失败的处理

    按照官方的文档(https://github.com/supermarin/Alcatraz),先卸载再重新安装即可.步骤如下: 1. 退出Xcode 2. rm -rf ~/Library/Appl ...

  6. Mysql连接测试代码

    <?php $link=mysql_connect('localhost','root','htuidc'); if($link) echo "success"; ?>

  7. Dynamic view

    Views are a useful feature of SQL databases, letting us create virtual tables based on SQL select st ...

  8. gRPC Client的负载均衡器

    一.gRPC是什么? gRPC是一个高性能.通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers)序列化协 ...

  9. python的pip和virtualenv使用心得

    pip可以很方便的安装.卸载和管理Python的包.virtualenv则可以建立多个独立的虚拟环境,各个环境中拥有自己的python解释器和各自的package包,互不影响.pip和virtuale ...

  10. Python学习教程(learning Python)--3.3.4 Python的if-elif-else语句

    Python的if-elif-else语句用于多种条件判断后选择某个语句块执行.该语句可以利用一系列条件表达式进行检查,并在某个表达式为真的情况下执行相应的代码.需要注意的是,虽然if/elif/el ...