Atl实战系列《用ATL COM Wizard 实现(VC++的插件)Add-in》

 

要实现Add-in Object 有三种方法,一种是利用ATL COM Wizard中的ATL对象 Add-in Object来实现,另一种是利用DevStudio Add-in Wizard来实现,第三种就是手工写所有的代码,如果手工写,一定要记住实现IDSAddIn接口,这样才能才能增加新的命令和工具条到VCIDE环境中去。

 我主要是讲解ATL COM Wizard,所以我用第一种方法来实现。在这里我实现了IApplicationEvents IDSAddIn接口,实现IapplicationEvents接口是应为我要对Application 对象进行操作,比如NewDocument()WorkspaceOpen()等等方法。而实现IDSAddIn接口,是应为要增加新的命令和工具条到VCIDE环境中去。

示例程序实现的功能:

1)              VCIDE环境中增加一个工具条(4个按钮),并且能操纵VCIDE环境,(工具条如下图) 第一个按钮弹出对话框允许修改用户信息,第二个按钮最小化所有打开的窗口,第三个最大化所有的窗口,第四个按钮弹出一个Messagbox。

           

2)              对每一个新建的文档,根据文档类型在文件头自动加上版权信息和相关内容注释。

源代码 http://263.csdn.net/FileBBS/files/2001_8/T_436_1.zip

 

观看效果:下载源代码,编译后生成Sample_02.dll,然后在VC的环境中,选择菜单tools/customize ,然后选择最后一个Add-ins and Macro Files 标签,选择Browse按钮,选择刚才编译后的Sample_02.dll文件,然后在Add-ins and Macro列表框中选中Copyright Class ,然后Close Customize对话框,这是VCIDE环境就会出现一个有四个按钮的工具条(见上图)。大家可以分别点击这几个按钮看看效果,也可分别在VC环境中(新建)New 几种类型的文件(.cpp ,.h .htm .txt文件)看看文件头是否加上版权信息.

 

 下面一步步引导大家来实现此例子程序:

1)  ATL COM Wizard建立一个叫Sample_02DLL项目文件

2)  Class Wizard 中鼠标右键,在弹出菜单种选择New ATL Object…

3)  ATL COM Wizard对话框中的Categroy选择Object Object中选择Add-in Object,选择Next按钮(如图)。

   

4)  选择属性对话框的Names标签,在C++组的Short Name编辑框输入Copyright(如图)

     

5)  选择DevStudio Add-in标签,在Add-in Features中选择Application Events,选择OK按钮确定

   

上面的步骤生成基本Add-in框架代码

 6) 创建IDE工具条

       a) 创建两个Bitmap 文件作为工具条图像资源

              IDB_TOOLBAR_LARGE_COPYRIGHT  32 x 32大小

     IDB_TOOLBAR_MEDIUM_COPYRIGHT 16 x 16 大小

  b) Ccopyright 类的OnConnection()函数中加入创建工具条按钮的代码, 详细代码请参看源代码

此段代码主要用了Application Object的两个方法AddCommand()和AddCommandBarButton(),AddCommand()方法调用后,在菜单的Tools/Customize 中的Commands标签中的Categroy列表框中就会有对应的Command命令(),

如果我增加一条这样的命令AddCommand(CComBSTR(_T("ShowInfoDlg/n显示/n修改用户版权信息/n显示")),CComBSTR(_T("ShowInfoDlg")), 0, dwAddInID, &bRet);CategroyAll Commands中就能找到ShowInfoDlg这条命令。AddCommandBarButton()方法就是向IDE集成环境增加一个工具条按钮,程序中可以不调用此方法,可以手动拖拉到工具条上。打开菜单Tools/Customize 用鼠标拽拉你需要的的命令到工具条上即可(如图)

 Ccopyright NewDocument()方法中的代码,主要就是增加必要的版权信息到文档中,此处主要是说明怎样操作VC环境中文档,大家也得到具体的Windows来修改窗口的形状和属性,怎么修改就要看各自的想象力了。

增加命令对应的方法:

1)  如果要增加一条命令,必须在Icopyright中增加相应的方法。如在示例程序中我增加了MiniWindow这个命令,那么我在Icopyright中也必须增加MiniWindow这样一个方法       (在ClassWizard中鼠标右键Icopyright,在弹出菜单中选择Add Method 即可增加方法)     

示例程序程序中共增加了四个命令:ShowInfoDlgMiniWindowMaxWindowTest,应此必须在Icopyright接口中实现此四个方法

 

7)实现工具条后,就是实现具体的方法了,具体的实现请参看Ccopyright中的四个方法

STDMETHODIMP CCopyright::ShowInfoDlg()

STDMETHODIMP CCopyright::MaxWindow()

STDMETHODIMP CCopyright::MiniWindow()

STDMETHODIMP CCopyright::Test()

值的说明的是在ShowInfoDlg()方法中弹出了一个对话框。在ATL中类似于这种对话框很容易实现。在Class Wizard 中鼠标右键,在弹出菜单种选择New ATL Object…ATL Object wizard中的Category中选择Miscellaneous ,Object中选择DialogNext按钮后,在ATL Object wizard属性对话框中Short name 编辑框中输入UserInfoDlg即完成对话框的实现。另外,对话框中输入的用户信息是记载在注册表中的.ShowInfoDlg()方法弹出的界面如下图:

至此,示例代码基本完成,由于很多人对ATL开发都比较熟悉,应此原理和一些细节就不一一说明了。由于匆忙中完成的,错误之处,还请大家见谅。

附加:怎样调试示例程序,编译运行,在弹出的对话框中选择VC的安装路径下的Common/MSDev98/Bin/MSDEV.EXE作为调试程序,然后在调试启动的VC环境中选择菜单下tools/customize中...具体操作参看前面的观看效果一段说明。

 

下一次,准备给大家介绍用ATL COM Wizard 中的Simple Object 做一个简单的分布式C/S应用,以及怎样从服务端动态的返回数据。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 要下载ATL VC示例源码,可以按照以下步骤进行操作: 1. 打开您的网页浏览器,如Google Chrome或Microsoft Edge。 2. 在搜索栏中输入“ATL VC示例源码下载”或访问ATL VC官方网站。 3. 导航至官方网站的下载页面或示例源码页面。 4. 在该页面中浏览示例源码列表,找到您感兴趣的示例项目。 5. 点击所选示例项目的下载按钮或链接。 6. 系统将开始下载示例源码文件到您的计算机。 7. 等待下载完成,时间长短取决于您的网络连接速度和文件大小。 8. 找到已下载的示例源码文件,通常会保存在计算机的默认“下载”文件夹中。 9. 解压缩下载的示例源码文件,通常可以使用Windows内置的解压缩工具或第三方解压缩软件。 10. 进入解压缩后的示例源码文件夹,通过阅读源代码来理解和学习ATL VC示例项目的实现方式。 希望以上步骤能帮助您成功下载并使用ATL VC示例源码!如有需要,也可以参考官方网站上的下载指南或寻求相关技术支持。 ### 回答2: 您好!要下载 ATL VC 示例源码,您可以按照以下步骤进行操作: 1. 打开您的网络浏览器,前往 ATL VC 示例的官方网站。您可以使用搜索引擎搜索 "ATL VC 示例" 找到相关网站。 2. 在官方网站上,浏览或搜索示例源码下载页面。有些网站会直接在首页或导航栏上提供示例源码的下载入口,您可以直接点击进入。 3. 一旦找到下载入口,点击进入示例源码下载页面。检查页面上是否有提供示例源码的链接或按钮。 4. 点击链接或按钮,开始下载示例源码。通常,示例源码会以压缩文件的形式提供,如 ZIP 或 RAR 格式。 5. 下载完成后,解压缩源码文件。您可以使用常见的解压缩软件,如 WinRAR 或 7-Zip。 6. 解压缩完成后,您将获得一个包含示例源码的文件夹。您可以通过浏览文件夹的内容来了解其中的示例代码。 请注意,下载示例源码可能需要一定的时间,具体取决于您的网络速度和源码文件的大小。另外,确保从官方网站下载源码,以确保其完整性和安全性。 希望以上信息能够对您有所帮助!如有其他问题,请随时告知。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

evelan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值