資源簡(jiǎn)介
C++編寫(xiě)的屏幕截圖源代碼,類(lèi)似與QQ的屏幕截圖功能

代碼片段和文件信息
/********************************************************************
屏幕截圖小工具。Copyright???Blueflash?Technology?2009
http://www.efreda.com
作者:吳興華
版本:1.1.0
*********************************************************************/
//?ScreenCapture.cpp?:?定義應(yīng)用程序的入口點(diǎn)。
//
#include?“stdafx.h“
#include?“ScreenCapture.h“
#define?MAX_LOADSTRING?100
//?全局變量:
HINSTANCE?hInst; //?當(dāng)前實(shí)例
TCHAR?sztitle[MAX_LOADSTRING]; //?標(biāo)題欄文本
TCHAR?szWindowClass[MAX_LOADSTRING]; //?主窗口類(lèi)名
//自定義全局變量
HHOOK?g_hhook; //?全局鍵盤(pán)鉤子
HWND??g_hwnd; //?窗口句柄
BOOL?isShow=true; //?窗口是否處于顯示狀態(tài)
LPCTSTR?szAppName=L“屏幕截圖工具“;
LPCTSTR?szCaption=L“屏幕截圖工具“;
//彩色截圖
HDC?g_hMemDc; //原始屏幕截圖的內(nèi)存描述符
HBITMAP?g_hBmp; //原始屏幕截圖
HBITMAP?g_hOldBmp; //原始Handle數(shù)據(jù)
//灰度圖
HDC?g_grayDc; //灰度截圖的內(nèi)存描述符
HBITMAP?g_grayBmp; //灰度截圖
HBITMAP?g_grayOld; //灰度原始Handle數(shù)據(jù)
BOOL?isSelected=false; //是否選取了截圖局域
BOOL?isMouseDown=false; //是否按下鼠標(biāo)
int?xScrnyScrn;
RECT?rect; //框大小
//?此代碼模塊中包含的函數(shù)的前向聲明:
ATOM MyRegisterClass(HINSTANCE?hInstance);
BOOL InitInstance(HINSTANCE?int);
LRESULT?CALLBACK WndProc(HWND?UINT?WPARAM?LPARAM);
INT_PTR?CALLBACK About(HWND?UINT?WPARAM?LPARAM);
//自定義函數(shù)聲明
LRESULT?CALLBACK GlobleKeyProc(int?WPARAM?LPARAM);//鍵盤(pán)處理
void?GetScreenCapture();//獲取屏幕截圖
void?CopyBmpToClipboard();//將選定圖拷貝至剪貼板
void?CovertToGrayBitmap(HBITMAPHDC);//轉(zhuǎn)換灰度圖
void?ReleaseBmp();//釋放設(shè)備以及位圖
int?APIENTRY?_tWinMain(HINSTANCE?hInstance
?????????????????????HINSTANCE?hPrevInstance
?????????????????????LPTSTR????lpCmdLine
?????????????????????int???????nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
? //?TODO:?在此放置代碼。
MSG?msg;
HACCEL?hAccelTable;
//?初始化全局字符串
LoadString(hInstance?IDS_APP_title?sztitle?MAX_LOADSTRING);
LoadString(hInstance?IDC_SCREENCAPTURE?szWindowClass?MAX_LOADSTRING);
MyRegisterClass(hInstance);
//?執(zhí)行應(yīng)用程序初始化:
if?(!InitInstance?(hInstance?nCmdShow))
{
return?FALSE;
}
hAccelTable?=?LoadAccelerators(hInstance?MAKEINTRESOURCE(IDC_SCREENCAPTURE));
//?主消息循環(huán):
while?(GetMessage(&msg?NULL?0?0))
{
if?(!TranslateAccelerator(msg.hwnd?hAccelTable?&msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return?(int)?msg.wParam;
}
//
//??函數(shù):?MyRegisterClass()
//
//??目的:?注冊(cè)窗口類(lèi)。
//
//??注釋:
//
//????僅當(dāng)希望
//????此代碼與添加到?Windows?95?中的“RegisterClassEx”
//????函數(shù)之前的?Win32?系統(tǒng)兼容時(shí),才需要此函數(shù)及其用法。調(diào)用此函數(shù)十分重要,
//????這樣應(yīng)用程序就可以獲得關(guān)聯(lián)的
//????“格式正確的”小圖標(biāo)。
//
ATOM?MyRegisterClass(HINSTANCE?hInstance)
{
WNDCLASSEX?wcex;
wcex.cbSize?=?sizeof(WNDCLASSEX);
wcex.style =?CS_HREDRAW?|?CS_VREDRAW|CS_DBLCLKS;
wcex.lpfnWndProc =?WndProc;
wcex.cbClsExtra =?0;
wcex.cbWndExtra =?0;
wcex.hInstance =?hInstance;
wcex.hIcon =?LoadIcon(hInstance?MAKEINTRESOURCE(IDI_SCREENCAPTURE));
wcex.hCursor =?LoadCursor(NULL?IDC_ARROW);
wcex.hbrBackground =?(
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件???????4995??2009-09-10?15:24??ScreenCapture\ScreenCapture.vcproj
?????文件???????2009??2009-09-09?14:14??ScreenCapture\ReadMe.txt
?????文件????????436??2009-09-09?14:53??ScreenCapture\stdafx.h
?????文件???????1026??2009-09-09?14:14??ScreenCapture\targetver.h
?????文件????????218??2009-09-09?14:14??ScreenCapture\stdafx.cpp
?????文件??????24244??2010-03-29?10:43??ScreenCapture\ScreenCapture.cpp
?????文件?????????79??2009-09-09?14:39??ScreenCapture\ScreenCapture.h
?????文件???????1407??2009-09-10?17:35??ScreenCapture\ScreenCapture.vcproj.SWEET.efreda-staff.user
?????文件???????1407??2009-09-10?00:09??ScreenCapture\ScreenCapture.vcproj.FREAK.Sweet.user
?????文件????????948??2009-09-10?15:23??ScreenCapture\Resource.h
?????文件???????2523??2009-09-10?15:38??ScreenCapture\ScreenCapture.rc
?????文件???????4646??2001-09-01?23:26??ScreenCapture\Notify.ico
?????文件??????99678??2009-09-10?16:00??ScreenCapture\ScreenCapture.ico
?????文件????5975040??2009-09-10?17:35??ScreenCapture.ncb
?????文件????????905??2009-09-09?14:14??ScreenCapture.sln
????..A..H.?????40448??2009-09-10?17:35??ScreenCapture.suo
?????目錄??????????0??2010-03-29?10:41??ScreenCapture
-----------?---------??----------?-----??----
??????????????6160009????????????????????17
- 上一篇:AES GCM和ECB加密軟件,和工程文件
- 下一篇:C++屏幕截圖源代碼
評(píng)論
共有 條評(píng)論