activex控件的开发及测试过程,具体的开发步骤

时间过的很快,转眼间踏上工作岗位已经4个月了,这四个月来,深刻的体会到,在学校学的东西永远只是基础,踏上工作岗位之后还有很多要学习的,不只是专业知识。在试用期中跟随师父学到了了很多知识,接触到了具体的项目,参加了项目的开发和测试,深深感受到了作为码农的辛酸,与获得成功时的喜悦。今天就简单的聊聊active控件的开发过程,希望没有毕业的学弟学妹,好好珍惜学校的时光。。。。。。。。。。。。

首先聊聊什么是activex控件?ActiveX是Microsoft提出的一组使用COM(Component Object Model,部件对象模型)使 得软件部件在网络环境中进行交互的技术集。它与具体的编程语言无关。作为针对Internet应用开发的技术,ActiveX被广泛应用于WEB服务器以及客户端的各个方面。同时,ActiveX技术也被 用于方便地创建普通的桌面应用程序。究竟ActiveX控件在开发的过程中和测试中起到什么作用?究竟是如何工作的呢?接下来上代码和具体的流程,希望能帮助初学者更快的理解其开发流程。ActiveX 控件作为进程内服务器(通常是一个小型对象)实现,而进程内服务器可用于任何 OLE 容器。请注意,只有在识别 ActiveX 控件的 OLE 容器内使用时,ActiveX 控件的全部功能才可用。这种容器类型(以后称为“控件容器”)可以通过使用 ActiveX 控件的属性和方法来操作该控件,并可以从 ActiveX 控件接收事件形式的通知。下图演示了此交互。ActiveX 控件的 OLE 容器可以理解为我们包含控件的程序。

该控件使用两种机制进行通信:一种是公开属性和方法,一种是引发事件。这些事件用于在控件中发生重要的事情时通知控件容器。通过向事件附加参数,可将关于事件的其他信息发送到控件容器当在控件容器内使用控件时,下图演示了这两种机制的实现方式。

 

本实验中建立了一个简单的加法程序,并将求和的结果通过事件触发机制传回给容器,通过容器。首先就是打开开发环境vs2010,选择新建项目,在新建项目中,选择MFC active控件开发这个选项,接下来的过程默认即可,直至工程建立完成。测试的工程名为ceshi_1030,创建完成后在类的视图中会看见Cceshi_1030App,Cceshi_1030Ctrl,Cceshi_1030Proppage,Cceshi_1030Lib四个文件。右击Cceshi_1030Ctrl选择添加方法、属性和事件函数。在该实验中我们添加的方法是求和。在ceshi_1030Ctrl.cpp文件中的调度映射中会有:DISP_FUNCTION_ID(Cceshi_1030Ctrl, "add_ceshi", dispidadd_ceshi, add_ceshi, VT_I4, VTS_I4 VTS_I4),具体实现的代码如下

LONG Cceshi_1030Ctrl::add_ceshi(LONG parm1, LONG parm2)
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState());
	// TODO: 在此添加调度处理程序代码
	m_add =  parm2 + parm1;
	addresult(m_add);
	return m_add;
	//return 0;
}

这段代码中的addresult(m_add),就是我们定义的事件,用来将求和的结果传递给容器。还是右击Cceshi_1030Ctrl选择添加事件函数,在ceshi_1030Ctrl.cpp文件中的事件映射中会有:EVENT_CUSTOM_ID("addresult", eventidaddresult, addresult, VTS_I4)。在ceshi_1030Ctrl.h中会有如下代码

void addresult(LONG parm)
	{
		FireEvent(eventidaddresult, EVENT_PARAM(VTS_I4), parm);
	}
该函数会调用fireevent函数触发事件返回给容器,将求和结果返给容器。

至此控件的方法和事件已经开发完成,接下来就是编译和测试控件,测试控件的代码稍后供上。希望这篇简单的控件开发过程能给大家一个好的开始。衷心祝愿大家一切顺利!!!!!!




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值