到网上查找截屏发现基本都是一些小孩子的初级玩意,功能强大一点的又没有源代码所以自己花了三四天时间写了一个能达到工业使用质量级别的截图控件。

优点:1、代码量小只有1500行代码 2、结构清晰简单极易于理解 3、扩展性强,如:用widget类很容易制作工具条UI等扩展界面

效果:

其基本的功能有:

1、截屏

2、窗体自动识别

3、截图信息提示

4、放大镜

5、八个方向点改变截屏框

6、鼠标可拖动截屏框位置

7、快捷键

A、left、left、up、down改变截图框位置

B、(ctrl)+ (left、left、up、down)以1的速度改变截屏框大小

d、(ctrl)+(shift)+ (left、left、up、down)以5的速度改变截屏框大小

e、滚轮以20的速度改变截屏框大小

f、(shift)+滚轮以40的速度改变截屏框大小

g、回车截屏,esc退出

具体使用技术:

1、位图操作

2、窗口识别

3、图形叠加与透明

4、反走样画图、画线算法

应用方法:

此工具封装为简单的DLL形式,只有一个入口方法:

SCREENSHOT_API int fnScreenshot(void);

只要调用一下fnScreenshot函数,就可以进入截屏功能,成功会返回1并将截取图形放入windows剪贴板,取消返回0。

int _tmain(int argc, _TCHAR* argv[])
{
typedef int (*PfnScreenshot)(void);
PfnScreenshot PSH;
HMODULE HMod = LoadLibraryA("Screenshot.dll");
if (HMod)
{
PSH = (PfnScreenshot)GetProcAddress(HMod,"fnScreenshot");
if (PSH&&PSH())
{
printf("已经将截取图形放入剪贴板。");
}
FreeLibrary(HMod);
}
return 0;
}

由于参考并使用了很多技术牛人的代码,所以此代码也不敢私藏,现在开源发布出来供大家参考使用。  

License:Licensed under the Apache License, Version 2.0 (the "License");

源码下载:

http://download.csdn.net/detail/feiren127/6833025

达到工业使用质量级别的类似于QQ截屏的软件的更多相关文章

  1. java 截屏 类似于 QQ截屏

    package com.sun.test; import java.awt.AWTException;import java.awt.BorderLayout;import java.awt.Colo ...

  2. [AIR] 利用SnapShot.exe实现QQ截屏功能

    主类(可作文档类): package { import flash.display.Bitmap; import flash.display.Sprite; import flash.events.E ...

  3. Android自己定义截屏功能,相似QQ截屏

    由于公司业务需求 须要对一个屏幕进行截屏.但自带的截屏功能是远远不够项目的功能需求 ,我们是做一个画板软件 .须要的像QQ那样截屏之后 ,能够看到我们自己定义的工具.有画笔,button等等 .and ...

  4. linux下可以和qq截屏比拟的工具hotshots

    可以区域截图,并且对其进行编辑. 安装过程如下: sudo add-apt-repository ppa:ubuntuhandbook1/apps sudo apt-get update sudo a ...

  5. 自定义控件--CircleImageView(类似于QQ、微信圆形头像自定义控件)

    现在基本上所有的需要用户注册的APP都有一个需要用户上传头像的需求,上传的头像基本都是类似于QQ.微信等社交应用圆形头像.最近,正在做的一个社交应用多处需要用到这种圆形头像的处理,总不能每次都对图片做 ...

  6. 一个关于如何创建类似于QQ客户端聊天窗口的模拟小项目

    对于不久之前学习到的一个有关的类似于QQ聊天框的模拟项目,对其中涉及到的知识在这里做一下总结. 首先,你要先创建一个客户端聊天框(取名为:ChatClient,它是你创建的类),这个类继承了Frame ...

  7. 类似于qq空间类型的评论和回复

    最近学习thinkphp,做了一个博客系统,其中感觉实现一个类似于qq空间的评论和回复功能比较复杂,所以把这次的经历记录下来,与大家共勉,具体的方法就不说了,在这里分享一下思路. 目标就是这种,关键是 ...

  8. JS时间轴效果(类似于qq空间时间轴效果)

    在上一家公司写了一个时间轴效果,今天整理了下,感觉有必要写一篇博客出来 给大家分享分享 当然代码还有很多不足的地方,希望大家多指点指点下,此效果类似于QQ空间或者人人网空间时间轴效果,当时也是为了需求 ...

  9. 查看图片插件--Viewer(类似于qq和微信聊天 的查看图片)

    Viewer的github地址:https://github.com/fengyuanchen/viewer  下载该插件(在文件夹dist里面) 具有参考价值的几个网站:http://www.dow ...

随机推荐

  1. groovy学习(四)io

    package ch5 numbers = [11, 12, 13, 14]def staffTel = ['Ken' : 2745, 'John' : 2746, 'Jessie' : 2772]p ...

  2. MONO 如何打包 .NET程序独立运行(winform篇)

    .NET程序独立运行是指运行.NET的电脑上,不需要安装.NET框架. .NET程序集“独立运行”并非真正的独立,它是运行在mono运行时基础之上的.由于这个运行时可以独立存在,所以,我们不需要在目标 ...

  3. angular.js之作用域scope'@','=','&'

    <!doctype html> <html ng-app='myApp'> <head> </head> <body> <script ...

  4. SimpleDateFormat的线程安全问题与解决方案

    SimpleDateFormat 是 Java 中一个常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题. 因为 DateFormat 和 Simple ...

  5. ABP Zero 多租户管理

    ABPZero - 多租户管理 启用多租户 ASP.NET Boilerplate和module-zero可以运行多租户或单租户模式.多租户默认为禁用.我们可以在我们的模块PreInitialize方 ...

  6. HTML中鼠标移动过去变换

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. Laravel路由

    Laravel安装,这里使用一键安装包. 使用PHP内置的Web服务器,在PHP文件夹下运行命令行 php -S 0.0.0.0:1024 一.设置路由 路由文件在app\HTTP\routes.ph ...

  8. ERP和MES破冰之路 [普实MES升级中国“智”造]

    题记:早在2007年,普实就提出AIO一体化产品概念,全力打造ERP的资源闭环,并取得了良好的市场效应.如今,在制造业的智能生产需求下,生产制造执行系统(MES)成功推向市场. MES是什么? 制造执 ...

  9. 20ms Ac Code

    Rectangle Aread C Code #include <stdio.h> int computeArea(int A,int B,int C,int D,int E,int F, ...

  10. 长连接 Socket.IO

    概念 说到长连接,对应的就是短连接了.下面先说明一下长连接和短连接的区别: 短连接与长连接 通俗来讲,浏览器和服务器每进行一次通信,就建立一次连接,任务结束就中断连接,即短连接.相反地,假如通信结束( ...