mfc 截图
时间: 2023-08-01 17:06:27 浏览: 94
以下是使用 MFC 编写的截图程序示例:
```cpp
void CScreenshotDlg::OnBnClickedBtnScreenshot()
{
// 获取屏幕 DC
CDC* pDC = GetDC();
CDC dcMem;
dcMem.CreateCompatibleDC(pDC);
// 获取屏幕尺寸
int cx = GetSystemMetrics(SM_CXSCREEN);
int cy = GetSystemMetrics(SM_CYSCREEN);
// 创建位图
CBitmap bmpScreen;
bmpScreen.CreateCompatibleBitmap(pDC, cx, cy);
CBitmap* pOldBitmap = dcMem.SelectObject(&bmpScreen);
// 截屏
dcMem.BitBlt(0, 0, cx, cy, pDC, 0, 0, SRCCOPY);
// 保存位图
CImage image;
image.Attach((HBITMAP)bmpScreen.Detach());
image.Save(_T("screenshot.bmp"), Gdiplus::ImageFormatBMP);
// 释放资源
dcMem.SelectObject(pOldBitmap);
ReleaseDC(pDC);
}
```
这段代码实现了从屏幕上截取一张完整的截图,并将其保存为 BMP 格式的文件。在 MFC 中,我们可以使用 CDC 类来操作设备上下文,使用 CBitmap 类来操作位图,使用 CImage 类来保存位图。
阅读全文