VB编写自己的截图软件第三篇
大家好,我是小嘟嘟熊,前两篇巳经写好了一个基本截图的功能,截图区只能用鼠标拖动,而且区域大小不能收缩,没有菜单,也没有热键,截图操作不够完善,那么今天主要给它写一个热键控制,和收缩区域的功能,我们先到模块1中声明一个热键控制函数
图1
上图中这个函数主要是获取键盘上某个键的状态,在自定义一个函数
图2
上图中有一个子过程和一个自定义函数,,drawdecsktopwindow这个过程是当我们在屏幕用鼠标拖动时画一个框,,我这个是现写现发,没有时间去考虑太多,如果用这个去当作缩放区域的边框,我觉得这个方法还是达不到要求的,因为它只能在桌面上画,如果有其他窗口挡住,它就看不到了,所以我们暂时不管它,
hokey键盘钩子,它有三个参数,第二和第三个是保留参数,,第三个如果大于0,就用组合键,=0就是单个键
回到窗体2,加上两个计时器,我们把它们的Interval属性设置一下Interval = 100,第一个计时器是来控制区域的缩放,第二个是监视热键
然后我们再把窗体上添加一些控件(详情看图)
图4
再次回到窗体2,在第二个计时器中写入代码热键监视代码
图5
计时器中的代码我只用了单个键,并没有用组合键,keyvalue函数是把键名直接转为键码,方便调用窗口1中组合框里的键名,也可以在组合框的itemData里加入键值,以上代码巳经可以实现热键截图了,现在来写区域缩放,首先我们要修改窗体2的Form_MouseDown中的事件
图6
上图中红色框中就 是要添加的代码,Form_MouseDown事件本身就是当用户鼠标在窗体上按下了才触发的事件,红框中的代码意思是当我们的鼠标在距离窗口边缘只有75的时候,鼠标指针就会变成一个拖动样式,把变量MOUSETRE赋值为5,就是告诉程序,当前是可以拖动窗口
图7
上图中是鼠标移动事件,,图中都有注释的,我就不多说了,然后我们在第一个计时器中写入代码,调整窗体大小
图8
写上这几行代码,那我们的截图区域就能缩放了,到这里,这个截图软件基本形成了,至于那些菜单什么的都太简单了,稍微会写代码的都能搞定了,我相信在看我这个文章的人都是会写代码,甚至比我写的好,我写这个软件只是一个思路.
最后我们测试,运行,点击窗体1上的按钮,弹出绿色边框,(这个功能也可以用组合键呼出),用鼠标调整截图区域,按F1图片就保存了,至于保存到什么位置,大家可以在窗体1中设置的,
好了,本文就到此结束,喜欢的朋友可以转发并收藏