我正在尝试对 MFC 应用程序中的主对话框进行屏幕截图并将其保存为图像文件。我尝试了我可以在网上找到的每个示例,并且总是得到相同的结果:图像文件具有正确的尺寸(我尝试使用除主要对话框之外的对话框来确定),但它都是黑色的。我最近的解决方案是使用 CBitmap 类将主对话框句柄传输到 CImage。这是我的代码:
CWnd* mainWindow;
CDC* mainWindowDC;
CBitmap bitmapToSave;
CImage imageToSave;
CRect windowRect;
//Get main window context and create bitmap from it
mainWindow = AfxGetMainWnd();
mainWindowDC = mainWindow->GetWindowDC();
mainWindow->GetWindowRect(&windowRect);
bitmapToSave.CreateCompatibleBitmap(mainWindowDC, windowRect.Width(), windowRect.Height());
imageToSave.Attach(bitmapToSave);
imageToSave.Save("C:\\Capture\\image.bmp", Gdiplus::ImageFormatBMP);