這篇文章主要講解了C++開發(fā)截屏小程序功能的方法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
成都創(chuàng)新互聯(lián)公司是專業(yè)的雨城網(wǎng)站建設公司,雨城接單;提供網(wǎng)站建設、成都做網(wǎng)站,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行雨城網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!C++開發(fā)截屏小程序,Win32程序,可以顯示截屏區(qū)域并保存。
上次的流星雨屏幕程序就簡單涉及到GDI繪圖了,這次簡單介紹幾個API函數(shù),涉及到GDI的。
GetDC,獲取當前創(chuàng)建的窗口的設備環(huán)境。
CreateDC,獲取當前屏幕的設備環(huán)境。
CreateCompatibleDC,創(chuàng)建一個兼容性的設備環(huán)境(相當于一個虛擬的設備環(huán)境)
BitBlt,這個函數(shù),相當于拷貝,將一個環(huán)境的設備內容拷貝到另一個設備中。
CreateCompatibleBitmap,創(chuàng)建一塊畫布,將其放在兼容性的DC里面,這樣就可以在里面畫圖了,當然還要放入畫筆和畫刷這些。
介紹完這些函數(shù)之后,那么設計思路就來了:
1.首先當然還是定義并創(chuàng)建窗口,還有消息循環(huán)。
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(IDC_CAPTURESCREEN)); wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(BLACK_BRUSH); wcex.lpszMenuName = NULL; wcex.lpszClassName = szWindowClass; wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL)); return RegisterClassEx(&wcex); } BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) { hInst = hInstance; // 將實例句柄存儲在全局變量中 //創(chuàng)建自己的窗口 hWnd = CreateWindow(szWindowClass, szTitle, WS_POPUP, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); if (!hWnd) { return FALSE; } //顯示和更新窗口 ShowWindow(hWnd, SW_MAXIMIZE); UpdateWindow(hWnd); return TRUE; } int APIENTRY _tWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPTSTR lpCmdLine, _In_ int nCmdShow) { //playsound只能播放wav格式,而mcisendstring可以播放任意格式的。 //PlaySound("yixi.wav", NULL, SND_FILENAME | SND_ASYNC | SND_LOOP); mciSendString("open ./abc.mp3 alias bk", 0, 0, 0); mciSendString("play bk repeat", 0, 0, 0); UNREFERENCED_PARAMETER(hPrevInstance); UNREFERENCED_PARAMETER(lpCmdLine); // TODO: 在此放置代碼。 MSG msg; HACCEL hAccelTable; // 初始化全局字符串 LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); LoadString(hInstance, IDC_CAPTURESCREEN, szWindowClass, MAX_LOADSTRING); MyRegisterClass(hInstance); //注冊類 // 執(zhí)行應用程序初始化: if (!InitInstance(hInstance, nCmdShow)) //初始化窗口 { return FALSE; } hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_CAPTURESCREEN)); // 主消息循環(huán): while (GetMessage(&msg, NULL, 0, 0)) { if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } return (int)msg.wParam; }
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。