让你的VC也支持手势----【手势扒手】制作过程 上 - gangyilovevc的专栏 ...

来源:百度文库 编辑:神马文学网 时间:2024/07/04 16:55:46
让你的VC也支持手势----【手势扒手】制作过程 上第一句话,先要感叹一下, 这一天终于来临了,从开始突发奇想,到要实现该功能,中间经历了一个多月的时间,技术上难度先不说,关键真的缺。。。缺时间啊,白天上班,下班后做饭、吃饭、老婆等这一档子事,也只有在夜深人静的时候,才多少有点空闲,与此同时,心里面确实也急啊,赶紧把这个事了了,否则老有个疙瘩,怪难受的,同时还影响做其他事情,这一点估计是程序员的的通病吧。。在入正题之前,还的把这个东西由来起因给大家说一下,我在之前时写了一篇关于如何让应用程序支持扩展,《其实也不算文章,只是一个实例代码,和一些简单说明》,那只是为了让大家了解扩展的能力,可以更加丰富你的应用程序,并且还打算此功能在之后将以扩展方式,添加到我们的主程序上。(当然以我们的扩展方式)首先唠叨下我常用的的两款插件。 1.用VC6的人估计没有人不装VA把,最起码我装了,呵呵,它的作用咱们不废话了。2. Vs2003 以上IDE有个标签页,上面罗列着所有已打开文件,可以很方便的在各种文件间切换,哎,可惜vc6没有,呵呵,你不知道并不代表没有,赶紧装一个WndTab(开源)把,用起来很爽的,也可以让vc6支持标签功能。 。。。。。。。太多扩展了。等待你自己探索把 他们都通过DevStudio Add-in Wizad方式来扩展IDE的功能,(别告诉我你不知道,他提供了一套专用模板,可以用来扩展IDE的功能,采用ATL/COM组件模型),这样,程序在以后应用中,被扩展成什么样,你自己有可能都不知道,想想插件VA就知道了,扩展可以让程序在发布出来后还可以变强,可见程序支持扩展是多么美妙的事情。 应用程序采用何种方式支持扩展?我所采用的是类似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++, 描述:如上。如下是【帮助】配置。   <你无权浏览此图片> 呵呵,这个就没有必要在题图了把,给CSDN省点硬盘把。最后看一个在VC中应用截图。  呵呵,执行后当前窗口就关闭了,比点击X方便把应该。呵呵。。。。。先让大家对插件功能有个概念性了解,这样在讲解具体实现时应该比较好理解一点。。。。。。。
本来打算放在一篇文章里面说完,但发现太多了,反正我有个这样的毛病,就是如果东西太长了,就有点看不下去了,尤其是对着电脑,鉴于此,把对主要部分剖析的相关介绍,我们放到下一篇,也正好我在整理整理,同时让我们也休息一会。。。。。。。。。。 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/gangyilovevc/archive/2010/11/29/6041974.aspx