创建过程以VS2010为例,分三篇(创建ATL项目、添加方法/属性和枚举、添加连接点)演示。本篇演示添加方法以及枚举,添加的属性的步骤和添加方法类同,不再演示。
传送门:
《使用ATL创建简单ActiveX控件(一) —— 创建ATL项目》
《使用ATL创建简单ActiveX控件(三) —— 添加连接点》
一、添加方法
切换到类视图窗口,找到“IATLAXDemo”,也就是控件的接口,在其上点击鼠标右键,选择“添加”,再选择“添加方法”,如下图所示:
之后,会弹出“添加方法向导”,如下图所示:
如上图设置之后,点击完成,此时,IDE会自动修改IDL文件,添加方法描述,如下图所示:
其实,这时候的方法并没有实现,只是编译之后,IDE会向"CATLAXDemo"类添加函数Test,此时,方法Test才算添加完毕,如下图所示:
此时,编写“ATLAXDemo.cpp”中的Test()函数便可响应外部窗口对方法Test的调用。
二、添加枚举
带有枚举的ActiveX控件在通过VS IDE生成控件头文件时,头文件中会自带有ActiveX控件所定义的枚举信息,但VS IDE对于控件添加枚举却没有像添加方法/属性、连接点时那样提供支持,添加枚举只能通过手动修改IDL文件来完成,方法如下图所示:
另外,还有一些别的格式可以完成添加枚举的功能,如:
typedef [v1_enum]
enum m_emATLAXDemo
{
_Undefined = 0,
_A,
_B
}Tmp;
或者在"[v1_enum]"中添加"helpstring"字段,但最终效果都是一样的。
下图是使用该方法添加枚举后,VS IDE生成的ActiveX控件头文件示例:
注意图中的变量“m_emATLAxDemo”,对,它只是一个枚举类型的成员变量,并不是枚举类型。
通过以上的步骤就完成了向ActiveX控件中添加方法和枚举变量,后续将会向ActiveX控件中添加连接点。