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);