我正在构建一个MFC c ++应用程序,我让用户读取图像,在其上绘制线条然后保存它。
所以我有一个名为“Image”的“CImage”对象,用户可以在其中加载图像。
我有一个设备上下文对象,我能够在其上绘制线条 使用“OnLButtonDown”和“OnLButtonUp”事件处理程序在运行时的设备上下文对象。
然后我让用户使用“CImage.save”保存图像..图像被保存但设备上下文绘制的线条不存在,这是预期的.. 但我希望它们出现在保存的图像中..问题是如何让设备上下文对象影响我的CImage对象?
这是鼠标按钮的事件处理程序
void CProFilterDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
curser =point;
if (draw && Boundry.PtInRect(point) )
{
CDialogEx::OnLButtonDown(nFlags, point);
}
}
和鼠标按钮启动时的那个
void CProFilterDlg::OnLButtonUp(UINT nFlags, CPoint point)
{
if (draw && Boundry.PtInRect(curser) && Boundry.PtInRect(point))
{
CClientDC dc(this);
dc.MoveTo(curser);
dc.LineTo(point);
CDialogEx::OnLButtonUp(nFlags, point);
}
}
这是我加载我的Cimage对象的地方
void CProFilterDlg::OnBnClickedBtnBrowse()
{
CFileDialog Browse(true);
if(Browse.DoModal() == IDOK)
{
ImagePath = Browse.GetPathName();
}
image.Load(ImagePath);
}
这就是我保存CImage的地方
void CProFilterDlg::OnBnClickedSave()
{
CFileDialog Save(true);
if(Save.DoModal() == IDOK)
{
ImagePath = Save.GetPathName();
}
image.Save(ImagePath,Gdiplus::ImageFormatBMP);
}