- 鼠标左键按下,记录开始坐标
- 鼠标右键按下,取消操作
- 鼠标移动,记录鼠标坐标
- 鼠标左键放开,记录鼠标移动结束坐标
- 鼠标双击,保存截图内容
- 绘图事件,实时绘制鼠标拖动的方框
此处的逻辑应该是这样的。当鼠标左键按下,就开始记录鼠标点击位置的坐标,鼠标移动时,更新一个新坐标,这个新坐标和之前的坐标就可以实时计算出这块矩形区域的x,y,width,height。当鼠标左键放开,就会记录下这一点的坐标,与第一个起始坐标进行计算,就可以得出截图区域的坐标。
鼠标移动事件是一直要运行的,因为要实时的预览我们截图的效果,因此要一直取得鼠标的位置。同时绘图事件也是需要一直运行的,它需要进行实时的计算我们预览的矩形区域,并且绘制在界面上。
鼠标右键的事件很简单,就是取消当前的操作,它的逻辑就是如果当前已经选择好区域了,那就取消这块区域,如果没有选择区域,那就关闭窗口。最终实现效果如下。
他的实现就是调用方法对桌面进行截屏,其实现代码如下,
还有一些变量是需要初始化的
- 代表鼠标的开始坐标
- 代表鼠标的结束坐标
- 存放全屏截图的图片
- 截取的图片
- 鼠标左键是否按下
- 进行绘制的对象
2. 实现鼠标按下事件
鼠标按下事件主要做两件事,
- 判断是按下鼠标左键还是鼠标右键
- 如果是鼠标左键就记录鼠标起始位置,否则就取消当前操作
事件处理程序流程图如下所示,
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!