到網上查找截屏發現基本都是一些小孩子的初級玩意,功能強大一點的又沒有源代碼所以自己花了三四天時間寫了一個能達到工業使用質量級別的截圖控件。
優點: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");
源碼下載: