devstudioadd-inwizard开发控件

devstudioadd-inwizard开发控件

ID:8798655

大小:335.50 KB

页数:8页

时间:2018-04-08

devstudioadd-inwizard开发控件_第1页
devstudioadd-inwizard开发控件_第2页
devstudioadd-inwizard开发控件_第3页
devstudioadd-inwizard开发控件_第4页
devstudioadd-inwizard开发控件_第5页
资源描述:

《devstudioadd-inwizard开发控件》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、手把手教你给VC++编写插件     下午偶然注意到VC++6.0新建工程标签页下的DevStudioAdd-inWizard,没有接触过,看名字是给DeveloperStudio开发插件,心生喜感,于是百度之,发生百度检索几乎找不到一篇完整的文字讲述这个wizard的使用,所以在CSDN搜了搜,费尽周折下载了一个只有几行实际代码的demo,同时在MSDN提供的实例中看到了类似的demo,研究了几个小时,基本理清了这种插件的编写过程,总结出来,以供大家交流。IDE插件的用处不言而喻,大名鼎鼎的BoundCheck和VisualAssistX都属于这类插件。但我刚刚

2、接触,水平很有限,更多地是希望得到有共同爱好的朋友的指教。 鉴于各种“手把手教你XXX”文体横行,我也来手把手一次吧。 我这里的环境是VisualC++6.0,相信其他VisualStudio版本的方法是大同小异的。 1.      创建工程。启动VC++,新建一个DevStudioAdd-inWizard工程,如图,比如我这里命名为Addin,确定。 工程设置,这里填写你给插件的描述,这将在VisualStudio装载插件时在列表中显示。比如我写AddinbyLusta。  上图中2个复选框最好都选上,第一个使工程有默认的按钮工具条,第二个使该工程默认重写了响应

3、DeveloperStudio事件的函数。确认。 2.      相关准备。进入工程,查看ClassView,会发现它自动生成了这么几个类。 其中,CXXXApp的作用相当于其他一般工程类型中的App类,比如MFC中的CWinApp类,是整个可执行程序或者链接库的启动类。CCommands类负责完成从界面触发的操作,具体的细节我也讲不清楚,因为这里用到了COM组件,似乎。我不是很了解,基本只是摸清了大概的框架。CDSAddIn类,完成某些初始化工作。具体描述在MSDN中可以找到,MSDN中有关于插件开发的几篇文章。我没有细看,主要得研究代码才懂。ICommands

4、,声明为interfaceICommands:IDispatch{};我也看不懂了,interfaceICommands不知道是属于什么类或者什么组件,COM技术?但是我看懂了这其中的函数实际就是响应VC界面上插件工具条按钮点击的代码实体。Globals变量中有不少内容,但都属于Wizard生成,可以不管。 对了,我们还没有想好编写的这个插件得有些什么功能。这些决定了我们要在ICommands中写进一些什么函数。 比如,我经常用windows记事本来临时做一些大段代码的批量处理,替换,查找,要比VC自身提供的功能方便很多,所以我们在这里给插件添加一个启动windo

5、ws记事本的功能。windows还有一些小工具也很实用,比如我的专业是遥感,所以经常是做图像处理,偶尔会用windows画图工具来截取图片或者转换图像格式,所以也可以把启动MSPaint添加插件工具条按钮中。这些没必要细说,我这里还添加了启动计算器的功能,因为VisualStudio调试并不提供手动计算的功能,比如你计算某幅位图的存储宽度。另外,增加一个通过百度搜索某一关键字的功能,以及关于本插件的信息。 3.编写代码。使用向导,右击类视图中的ICommands,点击AddMethod,似乎这里都是叫方法,不叫函数。注意:ICommands中已经默认生成了一个叫做

6、AddinCommandMethod的方法,你可以删除它,也可以重写它做自己的事。AddMethod对话框如下:  填写名称,参数列表,下面的声明可以不修改,其中的id[X]代表该方法的ID,这个ID标识了该方法与插件工具条按钮的顺序,比如id[6]的方法,响应第6个按钮的点击。我在这里添加了4个方法,分别是: 注意第一个是自动生成的。然后我们可以在类视图中看到ICommands下出现了一共5个方法。 接下来要做的是,在工具条中插入这么多个按钮,并设置好按钮的图形(BMP位图)。在类视图中点开CDSAddin类的OnConnection(),这是一个插件连接时的初

7、始化过程。 在这里我们可以看到之前默认生成的AddinCommandMethod方法,它是如何与第一个按钮关联起来的。代码如下:  我尝试了半天,参考demo,才知道了按钮与方法的关联都是这样一个一个完成的。唯一不同的是,要做这样几个对应的修改(依次对应图中红框)。A:修改为对应方法的名字(我也不知道这里的区别在哪)B:修改为事先创建好的字符串资源ID,下面会详细介绍。C:修改为对应的方法名。D:这个数字的参数名是nBitmapOffset,意思是按钮位图上的偏移值(如果你熟悉MFC工具条的位图就能明白,加载工具条是自动把位图的某一段分割为一个按钮)。 Windo

8、ws提供的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。