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

让你的VC也支持手势----【手势扒手】制作过程

第一句话,先要感叹一下, 这一天终于来临了,从开始突发奇想,到要实现该功能,中间经历了一个多月的时间,技术上难度先不说,关键真的缺。。。缺时间啊,白天上班,下班后做饭、吃饭、老婆等这一档子事,也只有在夜深人静的时候,才多少有点空闲,与此同时,心里面确实也急啊,赶紧把这个事了了,否则老有个疙瘩,怪难受的,同时还影响做其他事情,这一点估计是程序员的的通病吧。。

在入正题之前,还的把这个东西由来起因给大家说一下,我在之前时写了一篇关于如何让应用程序支持扩展,《其实也不算文章,只是一个实例代码,和一些简单说明》,那只是为了让大家了解扩展的能力,可以更加丰富你的应用程序,并且还打算此功能在之后将以扩展方式,添加到我们的主程序上。(当然以我们的扩展方式)

首先唠叨下我常用的的两款插件。

 1.VC6的人估计没有人不装VA把,最起码我装了,呵呵,它的作用咱们不废话了。

2. Vs2003 以上IDE有个标签页,上面罗列着所有已打开文件,可以很方便的在各种文件间切换,哎,可惜vc6没有,呵呵,你不知道并不代表没有,赶紧装一个WndTab(开源)把,用起来很爽的,也可以让vc6支持标签功能。

 。。。。。。。太多扩展了。等待你自己探索把

 

他们都通过DevStudio Add-in Wizad方式来扩展IDE的功能,(别告诉我你不知道,他提供了一套专用模板,可以用来扩展IDE的功能,采用ATL/COM组件模型),这样,程序在以后应用中,被扩展成什么样,你自己有可能都不知道,想想插件VA就知道了,扩展可以让程序在发布出来后还可以变强,可见程序支持扩展是多么美妙的事情。

 

应用程序采用何种方式支持扩展?我所采用的是类似VC6Add-in方式,并且当时做的时也主要参考了他的实现(当然了,要比他丰富一些) 我们的主程序相当于VC IDE,我们也提过一套类似Add-in的模板,通过这个模板,我们的应程序便完成了对扩展的支持。

当这个框架主体搭建完毕后,也就是在那个时候,我先写了一个小程序,就是上面所说的那个,先让大家来看看扩展都能支持什么功能,这时心里突然冒出来一个这样的想法?为何不将手势添加到VC中呢?为何不将一些操作频繁的功能转到手势上呢? 不用在按F7、不在通过点击右上角的X来关闭窗口,不在通过快捷键完成某些功能,更不通过菜单来完成,不在。。。。。。,

我要把这些全部操作,转换到手势上,以便使我鼠标随便划两下就能实现同样的功能,这样一方面扩展了我们开发环境,使其更容易使用,程序目的不就是这样吗?另一方面可以展现扩展魅力,让这所有一切尽可能通过手势来完成,这不是很爽吗?另外多多少少满足下虚荣心。。。呵呵。

  正是因为如此,才有此文和这个手势扒手。

手势扒手前身叫手势助手,因为本来就打算做一个辅助的工具,但发现要做的东西实在太多,更何况一些功能IDE本身已经实现了,没有实现的插件实现了,(比如ALT+OALT+<-ALT+G,相信用过VA的朋友已经非常熟悉这些快捷键,是啊,没有了他们,好像我写不了代码!呵呵)既然有现成的,我们为何不用?直接‘偷’过来不就行了吗?这就是手势扒手

现在先让我们通过截图方式了解下插件的功能,之后将核心功能,把它的设计思想和实现,给大家唠叨唠叨,通过这个讲解,来完成手势扒手制作之旅。

好,进入正题。

与其他插件一样,我们也提供工具栏,以此来完成相关配置。其方式跟VA类似,左边的tree有三个选项,分别为显示、手势、帮助。

如下是【显示】配置,主要设置线和tip窗口的。

显示

线宽:手势吗?肯定得划线,就是划线的宽度。

颜色:你觉得呢?

贴图特效: 用于tooptip窗口背景,一个是普通的填充,一个是贴图,为了好看点。

字体: 当时想的字体要用来这,结果没用上,汗。。。。

如下是【手势】配置,主要配置手势的地方,包括手势命令及功能。

 

手势配置

手势扒手主要有三个功能。

1.  功能:自己本身实现一个些功能,总不能老‘偷‘别人的,一点自己东西也没有把,也可以对不好的功能重新实现,例如VAALT+ß没有VS2010本身的好用,2010里面可以列出每个文件名及行号。先说一点啊,这个功能我没做。

2.  快捷键:可以将一些快捷键功能,转换为手势,例如VAALT+O,我用左上(LU)来替代。

3.  WM_COMMND:向IDE发送此消息,用于实现等同的功能,例如单击菜单项、加速键。

下面来看看每个功能的截图。说下手势命令 UDLR 分别代表上下左右,经常上网的朋友,关于手势不用我在多说了吧,别告诉我你没用过,除非你还在用IE6,不过我可以再告诉你一遍,按住鼠标右键划线,仅次而已。

功能配置。

 

功能

手势:定义鼠标手势。

功能:给当前手势选择功能,这里就是插件自己实现的功能。可以很多,也可以很少。

描述:看图。

快捷键配置。

 

快捷键

手势:如上。

快捷键:定义一个快捷键,但必须带ALT,后有介绍。

描述:如上。

WM_COMMND配置。

 

commnd

手势:如上。

消息号:菜单项、加速键的标示ID,关于这个ID怎么获得,得借助SPY++

描述:如上。

如下是【帮助】配置。

   <你无权浏览此图片> 呵呵,这个就没有必要在题图了把,给CSDN省点硬盘把。

最后看一个在VC中应用截图。

 

效果

呵呵,执行后当前窗口就关闭了,比点击X方便把应该。呵呵。。。。。

先让大家对插件功能有个概念性了解,这样在讲解具体实现时应该比较好理解一点。。。。。。。

本来打算放在一篇文章里面说完,但发现太多了,反正我有个这样的毛病,就是如果东西太长了,就有点看不下去了,尤其是对着电脑,鉴于此,把对主要部分剖析的相关介绍,我们放到下一篇,也正好我在整理整理,同时让我们也休息一会。。。。。。。。。。

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值