C++ 如何使屏幕截图不可见
我有截屏代码,每2秒执行一次,但当它执行时,你会看到光标在很短的时间内消失,我认为这是因为光标不是HDC的一部分(我看到一个简单的windows屏幕截图上没有光标),所以问题是如何在截图时使光标不消失 这是我的截图代码C++ 如何使屏幕截图不可见,c++,qt,winapi,C++,Qt,Winapi,我有截屏代码,每2秒执行一次,但当它执行时,你会看到光标在很短的时间内消失,我认为这是因为光标不是HDC的一部分(我看到一个简单的windows屏幕截图上没有光标),所以问题是如何在截图时使光标不消失 这是我的截图代码 HBITMAP ScreenTracker::CaptureScreen() { int nScreenWidth = GetSystemMetrics(SM_CXSCREEN); int nScreenHeight = GetSystemMetrics(
HBITMAP ScreenTracker::CaptureScreen()
{
int nScreenWidth = GetSystemMetrics(SM_CXSCREEN);
int nScreenHeight = GetSystemMetrics(SM_CYSCREEN) ; // / 20 * 19 can work
BITMAPINFO bmi;
memset(&bmi, 0, sizeof(BITMAPINFO));
bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bmi.bmiHeader.biWidth = nScreenWidth;
bmi.bmiHeader.biHeight = nScreenHeight;
bmi.bmiHeader.biPlanes = 1;
bmi.bmiHeader.biBitCount = 32;
bmi.bmiHeader.biCompression = BI_RGB;
HWND hDesktopWnd = GetDesktopWindow();
HDC hDesktopDC = GetDC(hDesktopWnd);
HDC hCaptureDC = CreateCompatibleDC(hDesktopDC);
HBITMAP hCaptureBitmap = CreateDIBSection(hDesktopDC, &bmi, DIB_RGB_COLORS, NULL, NULL, 0);
SelectObject(hCaptureDC, hCaptureBitmap);
BitBlt(hCaptureDC, 0, 0, nScreenWidth, nScreenHeight,
hDesktopDC, 0, 0, SRCCOPY | CAPTUREBLT);
ReleaseDC(hDesktopWnd, hDesktopDC);
DeleteDC(hCaptureDC);
return hCaptureBitmap;
};