上一篇小编带大家熟悉了一下ActiveX的建立以及相关的概念,(http://blog.csdn.net/u014028070/article/details/38424611

本文介绍下如何给控件添加“事件”“属性”“标准事件”“自定义事件”等一些相关操作

我们接着以之前的程序为例子。

如何添加标准属性

(1)      首先我们要清楚,一个控件的属性添加后,它就被添加在接口中,本文既在_DTest 中,我们打开类视图选项卡,打开_DTest,“右键”->“添加属性”,单击,出现如下图所示

(2)      属性名下拉列表中,将会看到出现在列表框中的属性,这些都是“标准属性“,我们选择两个属性为参考,BackColor和ForeColor,点击完成即可,我们会发现接口下面,出现了这两个属性。

(3)      要想让我们所选择属性的值显示在控件上,我们还需添加几行代码,在OnDraw()函数中,我们添加如下

(4)      在CTestCtrl源文件中(.cpp)找到如下的位置,并添加代码,此语句功能是增加属性页,其中PROPPAGEID(CLSID_CColorPropPage) 增加的是 颜色属性页,注意:我们已经增加了属性页了,所以我们要在此修改为数值 “2”

(5)      编译(F7),然后打开容器测试程序,添加我们的控件,此时我们要修改属性时,如下图,在容器测试程序中,“EDIT“->”属性“  出现一个对话框。点击”颜色选型卡“,即可对颜色属性进行修改,确认即可显示。

如何添加自定义是属性

(1)      程序中定时器设置的是一秒刷新一下,我们可以通过添加自定义属性,来手动设置时间间隔,“接口_DTest“右键”->添加属性,在”属性名“中我们手动输名称”Interval“,此时变量名被自动设置为以”m_”打头的名字(本文中是m_interval),其中,属性名是在其他开发环境中属性的名称,而“变量名”是在VC开发环境下属性的成员变量。这一点要注意。

(2)      选择Member variable,类型为短整型short,点击确定,此时我们就添加了一个自定义属性。

(3)      接下来我们来使用已经定义好的属性,如下图,我们添加代码

(4)      此时我们可以再容器测试程序中测试,打开测试程序,添加控件,在“Control“->“invoke method”,我们在“方法名称“选择interval(propput),因为我们是要设置属性的值,所以选择put,输入想要的值,如下图,

(5)      到此我们看见,时间按我们设置的时间进行显示。

如何添加方法(相当于函数)

(1)      添加方法仍然是在“接口“选项中添加,我们在此简单的演示下,此时我们已经添加了一个方法  Hello,注意:在“接口_DTest“下出现我们添加的方法,如下图。

(2)      要知道,我们的所添加的方法,都要在CTestCtrl类中实现。所以我们在CTestCtr类中找到方法Hello,添加一个消息框,如下图。

(3)      我们在容器测试程序中调用方法Hello(),打开测试程序,添加我们的Test控件,

(4)      此时可以看到已经蹦出来一个消息框了。

如何添加事件

(1)    在CtestCtrl类上右键,添加事件(可以为该类添加一个事件),注意,事件的功能实现并不是由控件完成的而是由调用控件的程序完成的,

(2)    我们添加一个标准事件,“点击“事件

(3)    在此我们可以发现我们添加的事件,如下图。

(4)    我们仍然在容器测试程序中调用他,尽管我们没有写任何代码,但是我们已经添加了一个点击事件。首先先编译一下(F7)

(5)    我们点击控件,发现测试程序下面的消息框,出现如下字样,证明控件检测到我们点击了控件这个事件。

到此小编已经为大家通过简单的例子,来介绍如何添加事件,属性,方法的步骤以及一些概念,下一篇,我介绍下如何在自己写的程序中使用ActiveX控件。http://blog.csdn.net/u014028070/article/details/38424611点击打开链接

如何给ActiveX控件添加“事件”“属性”“标准事件”“自定义事件”等一些相关操作的更多相关文章

  1. WPF系列 —— 控件添加依赖属性(转)

    WPF系列 —— 控件添加依赖属性 依赖属性的概念,用途 ,如何新建与使用.本文用做一个自定义TimePicker控件来演示WPF的依赖属性的简单应用. 先上TimePicker的一个效果图. 概念 ...

  2. c# 开发ActiveX控件,添加事件,QT调用事件

    c# 开发 ActiveX 的过程参考我的另一篇文章 :  https://www.cnblogs.com/baqifanye/p/10414004.html 本篇讲如何 在C# 开发的ActiveX ...

  3. 【C#】使用IExtenderProvider为控件添加扩展属性,像ToolTip那样

    申明: - 本文适用于WinForm开发 - 文中的“控件”一词是广义上的说法,泛指包括ToolStripItem.MenuItem在内单个界面元素,并不特指继承自Control类的狭义控件 用过To ...

  4. ATL向控件添加私有属性-成员变量

    https://msdn.microsoft.com/zh-cn/library/cc451389(v=vs.71).aspx ------------------------------------ ...

  5. 【VS开发】ActiveX控件如何定制属性?

    在很多场合下会存在这样的需求,那就是使用方在实际使用控件之前就想控件已经做了相应的处理比如加载的控件版本不正确等,或者需要在加载时才确定能够使用的功能集:这个时候传统的配置文件已经无法满足这种类型的需 ...

  6. WPF系列 —— 控件添加依赖属性

    依赖属性的概念,用途 ,如何新建与使用.本文用做一个自定义TimePicker控件来演示WPF的依赖属性的简单应用. 先上TimePicker的一个效果图. 概念 和 用途:依赖属性是对传统.net ...

  7. WPF对某控件添加右键属性

    代码创建右键属性 ContextMenu cm = new ContextMenu(); MenuItem mi = new MenuItem(); mi.Header = "打开此文件所有 ...

  8. Delphi 编写ActiveX控件(OCX控件)的知识和样例(有详细步骤)

    一.ActiveX应用情况简介: ActiveX控件也就是一般所说的OCX控件,它是 ActiveX技术的一部分.ActiveX是微软公司推出的基于组件对象模型COM的技术,包括对Windows 32 ...

  9. ActiveX控件(MFC篇)

    目录 第1章 VC++6.0创建控件    1 1.1 目标    1 1.1.1 方法    1 1.1.2 属性    1 1.1.3 事件    1 1.2 创建项目    2 1.3 项目结构 ...

随机推荐

  1. AX 利用windows粘贴板功能实现批量数据快速导出EXCEL

    static void test(Args _args) { int lineNum; int titleLines; SysExcelApplication excel; SysExcelWorkb ...

  2. 有没有好用的开源sql语法分析器? - 匿名用户的回答 - 知乎

    有没有好用的开源sql语法分析器? - 匿名用户的回答 - 知乎 presto,hive,drill,calcite,sparksq

  3. Jquery在线引用地址:

    转自:http://www.cnblogs.com/lkf18/archive/2012/12/11/2813241.html 1. 很多网站都是使用这种方式引入,客户的浏览器可能已经缓存过了 jqu ...

  4. 第六章_PHP数组

    1.PHP支持两种数组:索引数组(indexed array)和关联数组(associative array),前者使用数字作为键,后者使用字符串作为键. 2.遍历索引数组 2.1 for循环语句 2 ...

  5. C puzzles详解【1-5题】

    第一题 #include<stdio.h> #define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0])) ,,,,,,}; int m ...

  6. AWS学习之EC2

    1.AWS简介 AWS(Amazon Web Services )提供了一整套云计算服务,让您能够构建复杂.可扩展的应用程序.如今,成千上万各种规模的客户都在使用这些云计算服务,它们涉及各个行业,包括 ...

  7. 使用notiy和wait模拟阻塞队列

    public class MyQueue { //定义一个存储数据的容器 private LinkedList<Object> list = new LinkedList<Objec ...

  8. android ping网络是否成功

    public static boolean pingHost(String str) { //str 为要ping的IP地址 boolean result = false; try { Process ...

  9. hadoop2—namenode—HA原理详解

    在hadoop1中NameNode存在一个单点故障问题,也就是说如果NameNode所在的机器发生故障,那么整个集群就将不可用(hadoop1中有个SecorndaryNameNode,但是它并不是N ...

  10. iOS反射机制

    iOS属性反射:说白了,就是将两个对象的所有属性,用动态的方式取出来,并根据属性名,自动绑值.(注意:对象的类,如果是派生类,就得靠其他方式来实现了,因为得到不该基类的属性.) 本人常用的反射方式,有 ...