CRect rcPlot;
GetDlgItem(IDC_VIEW)->GetWindowRect(&rcPlot); //获取IDC_VIEW在整个屏幕中的像素位置
ScreenToClient(&rcPlot);//获取IDC_VIEW在父窗口中的位置
HDC hDC= ::GetWindowDC(GetDlgItem(IDC_VIEW)->GetSafeHwnd());
HDC hDCMem= ::CreateCompatibleDC(hDC);// 建立和屏幕兼容的bitmap
HBITMAP hBitmap= ::CreateCompatibleBitmap(hDC,rcPlot.Width(),rcPlot.Height());
HBITMAP hOldBitmap= (HBITMAP)::SelectObject(hDCMem,hBitmap);////将memBitmap选入内存DC
::BitBlt(hDCMem,0,0,rcPlot.Width(),rcPlot.Height(),hDC,0,0,SRCCOPY);// 调解高度宽度
::SelectObject(hDCMem,hOldBitmap);
CImage image;
image.Attach(hBitmap); //将位图加入图片表中
CString strFilter=L"位图文件(*.bmp)|*.bmp|JPEG 图像文件|*.jpg|GIF 图像文件|*.gif|PNG 图像文件|*.png||";
CFileDialog dlg(false,L"bmp",L"曲线.bmp",NULL,strFilter);
if ( IDOK == dlg.DoModal())
{
image.Save(dlg.GetPathName());
}
【框架-MFC】MFC下截取窗口特定部分并保存为图片
最新推荐文章于 2019-05-24 20:41:54 发布