VARCHART XGantt_v5.1用户手册:如何在Visual Studio 6.0或7.0中插入VARCHART ActiveX
VARCHART XGantt是一个交互式的甘特图控件,其模块化的设计让您可以创建满足您和您的客户所需求的应用程序。(我们领先的甘特图控件VARCHART XGantt可用于.NET,ActiveX和ASP.NET应用程序。)VARCHART XGantt可以快速、简单地集成到您的应用程序中,帮助您识别性能瓶颈、避免延迟以及高效利用资源,使复杂数据变得更加容易理解。
本篇文章主要介绍VARCHART XGantt_v5.1用户手册中的内容——如何在在Visual Studio 6.0或7.0中插入VARCHART ActiveX,接下来就是具体的操作步骤了~
要在MFC项目中插入VARCHART ActiveX控件,请按以下步骤操作:
Visual Studio 6.0:
在“项目”菜单中,选择“添加到项目...”项,然后选择“子项目组件和控件”。在出现的对话框中,从已注册的控件中选择NETRONIC VARCHART ActiveX,然后单击“插入”按钮。控制问题后出现一个对话框。在列表框中,取消选择向导创建的除第一个类之外的所有MFC包装(这是不可能的)。单击“确定”按钮。然后单击“关闭”按钮以关闭对话框。
Visual Studio 7.0:
在对话框资源的上下文菜单中,选择“插入ActiveX控件...”项,然后将选定的ActiveX控件传输到对话框中。然后通过上下文菜单(菜单项Insert Variable ...)手动或在向导的帮助下,在DoDataExchange方法中创建实例变量和DDX_CONTROL条目。在后一种情况下,还将自动创建MFC包装器。或者,您可以在ClassView中创建MFC包装器(包括子对象的包装器),但这样会丢失Enum定义。
因此,这两种开发环境都提供了自动创建MFC包装器。在这些包装器的帮助下,您可以像使用普通MFC对象一样使用ActiveX控件的方法和属性。如果没有包装器,您将不得不更深入地研究OLE约定。但是,创建的包装器并不令人满意:
自动生成的文件不包含Enum定义(仅限Visual Studio 6.0)。
所有子类都存储在单独的文件中。这使得无法同时使用不同的VARCHART ActiveX控件(Visual Studio 6.0)。在Visual Studio 7.0中,不生成子类;因此它们根本无法使用。
对于控件的API更新,只能间接地更新包装器。此外,Visual Studio 7.0使用与旧版本不同的名称约定。这将使旧项目的更改成为必要(新名称前缀:get_和set_而不是get和set)。
如果要在一个项目中使用多个VARCHART ActiveX控件,则会发生与子对象的名称冲突。
因此,NETRONIC Software GmbH提供了一对自己的MFC包装文件:xgantt.h和xgantt.cpp。此文件存储在VARCHART ActiveX控件的安装目录的子目录MFC中。它包含所有包装器和有用的Enum定义。
所有定义都已放入命名空间中,以便您可以在一个项目中使用多个VARCHART ActiveX控件,而不会出现子对象的名称冲突。
从项目中删除自动创建的包装器,将cpp文件添加到项目中,然后将头文件导入对话框类。
如果在类中只使用一个控件,则下面的代码行就足够了:
示例代码
#include "xgantt.h" using namespace XGantt;
如果在一个类中使用多个VARCHART ActiveX控件,则必须将命名空间放在至少两个控件(例如CVcNode或CVcTitle)中出现的每个子对象的前面。以下示例演示了标题对象的变量声明:
示例代码
XGantt::CVcTitle title = VcGantt1.GetTitle();
在事件过程而不是对象中,只传递LPDISPATCH指针。这些指针可以通过对象的相应的Attach方法连接到对象。然后您不应该忘记在对象使用结束时输入Detach()。
如果您已使用生成的文件进行项目,更改应该不难,因为NETRONIC使用Visual Studio 6.0生成的文件作为基础,它们应该是兼容的。唯一的区别是使用命名空间来使子对象的名称更清晰。
想要购买VARCHART XGantt正版授权,或了解更多产品信息请点击
扫描关注慧聚IT微信公众号,及时获取最新动态及最新资讯