第一种方法:
void CItouziDlg::OnBnClickedSave()
{
HBITMAP hBitmap = NULL;
BITMAPINFO bmi;
LPBYTE pBits;
ZeroMemory(&bmi,sizeof(bmi));
//IDC_CHARTCTRL为控件变量名(可以是任何控件!)
CDC *pShowDC = GetDlgItem(IDC_CHARTCTRL)->GetDC();
//获取控件的宽度和高度 //
CRect rcShow;
GetDlgItem(IDC_CHARTCTRL)->GetWindowRect(&rcShow);
bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bmi.bmiHeader.biWidth = rcShow.Width();
bmi.bmiHeader.biHeight = rcShow.Height();
bmi.bmiHeader.biPlanes = 1;
bmi.bmiHeader.biBitCount = 24;
bmi.bmiHeader.biCompression = BI_RGB;
hBitmap = CreateDIBSection(pShowDC->m_hDC,&bmi,DIB_RGB_COLORS,(void **)&pBits,0,0);
//创建兼容dc并选择位图段
CDC dcMem;
dcMem.CreateCompatibleDC(pShowDC);
dcMem.SelectObject(hBitmap);
dcMem.BitBlt(0,0,rcShow.Width(),rcShow.Height(),pShowDC,0,0,SRCCOPY);
GetDlgItem(IDC_CHARTCTRL)->ReleaseDC(pShowDC);
if( hBitmap )
{
CImage img;
img.Attach(hBitmap);
img.Save(_T("tf.bmp"));
img.Save(_T("tf.jpg"));
DeleteObject(hBitmap);
AfxMessageBox(_T("保存图片成功!"));
}
}
第一种方法:
void CItouziDlg::OnBnClickedSave()
{//IDC_CHARTCTRL为控件变量名(可以是任何控件!)
CDC *pShowDC = GetDlgItem(IDC_CHARTCTRL)->GetDC();
CImage imag;
//获取控件的宽度和高度
CRect rcClient;
GetDlgItem(IDC_CHARTCTRL)->GetWindowRect(&rcClient); imag.Create(rcClient.Width(),rcClient.Height(),32);
::BitBlt(imag.GetDC(),0,0,rcClient.Width(),rcClient.Height(),pdc->m_hDC,0,0,SRCCOPY);
imag.Save(_T("tf.bmp"));
imag.Save(_T("tf.jpg"));
ReleaseDC(pdc);
imag.ReleaseDC();
AfxMessageBox(_T("保存图片成功!"));
}