MFC ActiveX控件:添加自定义方法

MFC ActiveX 控件:添加自定义方法

链接:http://msdn.microsoft.com/zh-cn/library/cc451420

Visual Studio .NET 2003
1(共 1)对本文的评价是有帮助 - 评价此主题

自定义方法与常用方法的区别在于,自定义方法未由 COleControl 实现。必须为添加到控件的每个自定义方法提供实现。

ActiveX 控件用户可以随时调用自定义方法来执行控件特定的操作。自定义方法的调度映射项为 DISP_FUNCTION 窗体。

使用“添加方法向导”添加自定义方法

下列过程说明如何将自定义方法 PtInCircle 添加到 ActiveX 控件的主干代码。PtInCircle 确定传递给控件的坐标是在圆的内部还是外部。此过程也可用于添加其他自定义方法。用自定义方法名及其参数替换 PtInCircle 方法名和参数。

注意   此例使用“事件”一文中的 InCircle 函数。有关此函数的更多信息,请参见文章 MFC ActiveX 控件:向 ActiveX 控件添加自定义事件

使用“添加方法向导”添加 PtInCircle 自定义方法

  1. 加载控件的项目。
  2. 在“类视图”中展开控件的库节点。
  3. 右击控件的接口节点(库节点的第二个节点)打开快捷菜单。
  4. 在快捷菜单中单击“添加”,然后单击“添加方法”。

    此操作将打开“添加方法向导”。

  5. 在“方法名称”框中,键入“PtInCircle”。
  6. 在“内部名称”框中,键入方法的内部函数名或使用默认值(此例中为 PtInCircle)。
  7. 在“返回类型”框中,单击方法的返回类型“VARIANT_BOOL”。
  8. 使用“参数类型”和“参数名”控件,添加一个称为 xCoord 的参数(OLE_XPOS_PIXELS 类型)。
  9. 使用“参数类型”和“参数名”控件,添加一个称为 yCoord 的参数(OLE_YPOS_PIXELS 类型)。
  10. 单击“完成”。

“添加方法向导”对自定义方法的更改

当您添加自定义方法时,“添加方法向导”对控件类头 (.H) 文件和实现 (.CPP) 文件进行一些更改。下列代码行被添加到控件类头 (.H) 文件中的调度映射声明:

VARIANT_BOOL PtInCircle(OLE_XPOS_PIXELS xCoord, OLE_YPOS_PIXELS yCoord);

此代码声明一个称为 PtInCircle 的调度方法处理程序。控件用户可以使用外部名称 PtInCircle 调用此函数。

下列代码行被添加到控件的 .IDL 文件:

[id(1), helpstring("method PtInCircle")] VARIANT_BOOL 
PtInCircle(OLE_XPOS_PIXELS xCoord, OLE_YPOS_PIXELS yCoord);

此行为 PtInCircle 方法分配一个特定的 ID 号,即该方法在“添加方法向导”方法和属性列表中的位置。由于自定义方法是用“添加方法向导”添加的,此方法的项自动添加到项目的 .IDL 文件。

另外,下列代码行(位于控件类的实现 (.CPP) 文件中)被添加到控件的调度映射:

DISP_FUNCTION(CSampleCtrl, "PtInCircle", PtInCircle, VARIANT_BOOL, 
VTS_XPOS_PIXELS VTS_YPOS_PIXELS)

DISP_FUNCTION 宏将 PtInCircle 方法映射到控件的处理函数 PtInCircle、将返回类型声明为 VARIANT_BOOL 并声明传递给 PtInCircleVTS_XPOS_PIXELS VTS_YPOSPIXELS 类型的两个参数。

最后,“添加方法向导”将存根 (stub) 函数 CSampleCtrl::PtInCircle 添加到控件的实现 (.CPP) 文件的末尾。为使 PtInCircle 按前面介绍的方式运行,必须对其做如下修改:

VARIANT_BOOL CSampleCtrl::PtInCircle(OLE_XPOS_PIXELS xCoord, OLE_YPOS_PIXELS yCoord)
{
    return InCircle(CPoint(xCoord, yCoord));
}

 

Visual Studio .NET 2003
1(共 1)对本文的评价是有帮助 - 评价此主题

自定义方法与常用方法的区别在于,自定义方法未由 COleControl 实现。必须为添加到控件的每个自定义方法提供实现。

ActiveX 控件用户可以随时调用自定义方法来执行控件特定的操作。自定义方法的调度映射项为 DISP_FUNCTION 窗体。

使用“添加方法向导”添加自定义方法

下列过程说明如何将自定义方法 PtInCircle 添加到 ActiveX 控件的主干代码。PtInCircle 确定传递给控件的坐标是在圆的内部还是外部。此过程也可用于添加其他自定义方法。用自定义方法名及其参数替换 PtInCircle 方法名和参数。

注意   此例使用“事件”一文中的 InCircle 函数。有关此函数的更多信息,请参见文章 MFC ActiveX 控件:向 ActiveX 控件添加自定义事件

使用“添加方法向导”添加 PtInCircle 自定义方法

  1. 加载控件的项目。
  2. 在“类视图”中展开控件的库节点。
  3. 右击控件的接口节点(库节点的第二个节点)打开快捷菜单。
  4. 在快捷菜单中单击“添加”,然后单击“添加方法”。

    此操作将打开“添加方法向导”。

  5. 在“方法名称”框中,键入“PtInCircle”。
  6. 在“内部名称”框中,键入方法的内部函数名或使用默认值(此例中为 PtInCircle)。
  7. 在“返回类型”框中,单击方法的返回类型“VARIANT_BOOL”。
  8. 使用“参数类型”和“参数名”控件,添加一个称为 xCoord 的参数(OLE_XPOS_PIXELS 类型)。
  9. 使用“参数类型”和“参数名”控件,添加一个称为 yCoord 的参数(OLE_YPOS_PIXELS 类型)。
  10. 单击“完成”。

“添加方法向导”对自定义方法的更改

当您添加自定义方法时,“添加方法向导”对控件类头 (.H) 文件和实现 (.CPP) 文件进行一些更改。下列代码行被添加到控件类头 (.H) 文件中的调度映射声明:

VARIANT_BOOL PtInCircle(OLE_XPOS_PIXELS xCoord, OLE_YPOS_PIXELS yCoord);

此代码声明一个称为 PtInCircle 的调度方法处理程序。控件用户可以使用外部名称 PtInCircle 调用此函数。

下列代码行被添加到控件的 .IDL 文件:

[id(1), helpstring("method PtInCircle")] VARIANT_BOOL 
PtInCircle(OLE_XPOS_PIXELS xCoord, OLE_YPOS_PIXELS yCoord);

此行为 PtInCircle 方法分配一个特定的 ID 号,即该方法在“添加方法向导”方法和属性列表中的位置。由于自定义方法是用“添加方法向导”添加的,此方法的项自动添加到项目的 .IDL 文件。

另外,下列代码行(位于控件类的实现 (.CPP) 文件中)被添加到控件的调度映射:

DISP_FUNCTION(CSampleCtrl, "PtInCircle", PtInCircle, VARIANT_BOOL, 
VTS_XPOS_PIXELS VTS_YPOS_PIXELS)

DISP_FUNCTION 宏将 PtInCircle 方法映射到控件的处理函数 PtInCircle、将返回类型声明为 VARIANT_BOOL 并声明传递给 PtInCircleVTS_XPOS_PIXELS VTS_YPOSPIXELS 类型的两个参数。

最后,“添加方法向导”将存根 (stub) 函数 CSampleCtrl::PtInCircle 添加到控件的实现 (.CPP) 文件的末尾。为使 PtInCircle 按前面介绍的方式运行,必须对其做如下修改:

VARIANT_BOOL CSampleCtrl::PtInCircle(OLE_XPOS_PIXELS xCoord, OLE_YPOS_PIXELS yCoord)
{
    return InCircle(CPoint(xCoord, yCoord));
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值