我先在单文档中加载了一张图片,然后把光标设定为一个矩形框。
1.当我在图片某一位置点击左键,矩形框如何贴在图片上。
2.当我保存时,如何把修改后的图片都加以保存。效果很像windows的画图工具里面对图片的修改。那位大虾做过的,帮帮忙。讲讲思路,最好能给我个实例看看,谢谢。
[email protected]
1.当我在图片某一位置点击左键,矩形框如何贴在图片上。
2.当我保存时,如何把修改后的图片都加以保存。效果很像windows的画图工具里面对图片的修改。那位大虾做过的,帮帮忙。讲讲思路,最好能给我个实例看看,谢谢。
[email protected]
跟截屏保存差不多
http://blog.csdn.net/luckywubi/archive/2009/04/28/4131441.aspx
这位朋友是说原理和截屏差不多:截屏就是将屏幕DC的内容保存下来。他说的是,你将显示的东西也放在一个内存DC中,你需要在上面放一个矩形框也好,放一个圆也好,更改一个地方的颜色也好,像做什么就在内存DC上做什么,同时把结果也显示在屏幕上。你将来要保存结果,就将内存DC的内容保存到图片文件中就好了啊!
说明下想要的效果,目前一个自定义矩形在跟踪光标移动,点击左键,矩形贴在贴图上。void CscreenView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CClientDC dc(this);
CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
CBrush brush(RGB(0,0,255));
pBrush=dc.SelectObject(&brush);
dc.Rectangle(point.x-wrect/2,point.y-hrect/2,point.x+wrect/2,point.y+hrect/2);//里面定义的是矩形大小
CView::OnLButtonDown(nFlags, point);
}
CBrush brush(RGB(0,0,255));
CBrush *pBrush=pDC->SelectObject(&brush);
pDC->StretchBlt(...)//贴图,用StretchBlt是图片可以拉伸,保证填充在方框内,如果用BitBlt就不能拉伸!
pDC->SelectObject(pBrush);
brush.DeleteObject();
ReleaseDC(pDC);
这两个函数可以了!