如何实现附件->“画图”中将图片某部分剪裁后任意拖动放置

tiankong1399 2008-10-31 06:38:47
如题,,,高手帮忙指导下。
...全文
724 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Chendy1985 2008-11-03
  • 打赏
  • 举报
回复
關注
Show_Mike 2008-11-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 boythl 的回复:]
就是把那个截取的部分每次拖动后Mouseup事件里把它给画到dc上的新位置。

可以用两个内存dc,一个保存你最初画的图片。 截取一块后把被截的那块给用白色填充。
另一个保存截取部分图片;
MouseUp时,先按第一个内存dc的内容重画整个dc;再把第二个内存dc的内容在拖放的位置画出来。
[/Quote]
补充一点:截取的选区,可以用路径来表示(实际上是多个小的矩形区域的组合).
jarraytan 2008-11-03
  • 打赏
  • 举报
回复
就是把那个截取的部分每次拖动后Mouseup事件里把它给画到dc上的新位置。

可以用两个内存dc,一个保存你最初画的图片。 截取一块后把被截的那块给用白色填充。
另一个保存截取部分图片;
MouseUp时,先按第一个内存dc的内容重画整个dc;再把第二个内存dc的内容在拖放的位置画出来。
zzz822163 2008-10-31
  • 打赏
  • 举报
回复

CBitmap bmp;
int x1,y1,x2,y2;
CDC memdc;
BITMAP bm;
memdc.CreateCompatibleDC(NULL);
bmp.m_hObject = (HBITMAP)LoadImage(NULL,"F:\\software\\19.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);

bmp.GetObject(sizeof(bm),&bm);
memdc.SelectObject(bmp);
pDC->StretchBlt(0,0,x2-x1,y2-y1,&memdc,x1,y1,x2-x1,y2-y1,SRCCOPY);

你自己计算选中的区域位置就好了,代码我没调试过,可能有问题,但大致就是这样了
vitamin1227 2008-10-31
  • 打赏
  • 举报
回复
直接用“选定”按钮(虚线方框的图标)

19,464

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧