应用程序采用何种方式支持扩展?我所采用的是类似VC6的Add-in方式,并且当时做的时也主要参考了他的实现(当然了,要比他丰富一些), 我们的主程序相当于VC的 IDE,我们也提过一套类似Add-in的模板,通过这个模板,我们的应程序便完成了对扩展的支持。
当这个框架主体搭建完毕后,也就是在那个时候,我先写了一个小程序,就是上面所说的那个,先让大家来看看扩展都能支持什么功能,这时心里突然冒出来一个这样的想法?为何不将手势添加到VC中呢?为何不将一些操作频繁的功能转到手势上呢? 不用在按F7、不在通过点击右上角的X来关闭窗口,不在通过快捷键完成某些功能,更不通过菜单来完成,不在。。。。。。,
我要把这些全部操作,转换到手势上,以便使我鼠标随便划两下就能实现同样的功能,这样一方面扩展了我们开发环境,使其更容易使用,程序目的不就是这样吗?另一方面可以展现扩展魅力,让这所有一切尽可能通过手势来完成,这不是很爽吗?另外多多少少满足下虚荣心。。。呵呵。
正是因为如此,才有此文和这个手势扒手。
手势扒手前身叫手势助手,因为本来就打算做一个辅助的工具,但发现要做的东西实在太多,更何况一些功能IDE本身已经实现了,没有实现的插件实现了,(比如ALT+O、ALT+<-、ALT+G,相信用过VA的朋友已经非常熟悉这些快捷键,是啊,没有了他们,好像我写不了代码!呵呵)既然有现成的,我们为何不用?直接‘偷’过来不就行了吗?这就是手势扒手
现在先让我们通过截图方式了解下插件的功能,之后将核心功能,把它的设计思想和实现,给大家唠叨唠叨,通过这个讲解,来完成手势扒手制作之旅。
好,进入正题。
与其他插件一样,我们也提供工具栏,以此来完成相关配置。其方式跟VA类似,左边的tree有三个选项,分别为显示、手势、帮助。
如下是【显示】配置,主要设置线和tip窗口的。
线宽:手势吗?肯定得划线,就是划线的宽度。
颜色:你觉得呢?
贴图特效: 用于tooptip窗口背景,一个是普通的填充,一个是贴图,为了好看点。
字体: 当时想的字体要用来这,结果没用上,汗。。。。
如下是【手势】配置,主要配置手势的地方,包括手势命令及功能。
手势扒手主要有三个功能。
1. 功能:自己本身实现一个些功能,总不能老‘偷‘别人的,一点自己东西也没有把,也可以对不好的功能重新实现,例如VA的ALT+ß没有VS2010本身的好用,2010里面可以列出每个文件名及行号。先说一点啊,这个功能我没做。
2. 快捷键:可以将一些快捷键功能,转换为手势,例如VA的ALT+O,我用左上(LU)来替代。
3. WM_COMMND:向IDE发送此消息,用于实现等同的功能,例如单击菜单项、加速键。
下面来看看每个功能的截图。说下手势命令 UDLR 分别代表上下左右,经常上网的朋友,关于手势不用我在多说了吧,别告诉我你没用过,除非你还在用IE6,不过我可以再告诉你一遍,按住鼠标右键划线,仅次而已。
功能配置。
手势:定义鼠标手势。
功能:给当前手势选择功能,这里就是插件自己实现的功能。可以很多,也可以很少。
描述:看图。
快捷键配置。
手势:如上。
快捷键:定义一个快捷键,但必须带ALT,后有介绍。
描述:如上。
WM_COMMND配置。
手势:如上。
消息号:菜单项、加速键的标示ID,关于这个ID怎么获得,得借助SPY++,
描述:如上。