如何实现图的拖动

zlalalal 2009-04-08 10:23:35
想用mfc做一个类似绘制uml的软件 一般uml软件里的比如类图中的 每个类(都是独立的单元)可以单独拖动来移动位置 请问这个功能有什么比较好的实现方式吗 请大家指教
...全文
106 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zlalalal 2009-04-10
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20090304/17/707a6720-11a2-4053-b060-622186dda9d0.html
找到其他关于该例子的帖子
而且还有熟面孔 呵呵
Hiiishe 2009-04-09
  • 打赏
  • 举报
回复
你的图片有个矩形位置,
在左键定义一个CRectTracker

把图片矩形传个这个
做判断是点是否落在矩形内,如果是就
然后调用其track函数就可以拖动
返回成功后
得到新的矩形
就移动了
zlalalal 2009-04-09
  • 打赏
  • 举报
回复
我的vs里没有drawcli 之前就知道有 但没找到 今天又花了很长时间终于找到了 研究了一下 一头雾水 一会接着看 帖子等会再结希望还有其他的声音
wonaixiaogang 2009-04-09
  • 打赏
  • 举报
回复
对了,假如你说的是位图,那么。要是想精确地拾取位图,包围盒的办法并不好用。(包围盒主要用在磁性吸取上)
我以前也问过这个问题,但是当时没好的答案,后来我自己想了个办法:
问题:
如何精确地拾取任意形状的图元?
图元是一个中间镂空的任意形状的图片,鼠标只有落在图片上才拾取。只要不在图片上,(比如在镂空部分)那么就不去拾取。
我的办法是:
用图元对象保存位图,和位图的Rect(以后运算也可以)。如果鼠标点落在视图窗口上图元的包围盒(同Rect一样大)中,那么返回一个相对包围盒的坐标,用这个坐标去检查图元对象中的位图,看鼠标所在点的是否是白色(也就是透明色,镂空部分).
wonaixiaogang 2009-04-09
  • 打赏
  • 举报
回复
貌似《计算机图形学》(走马观花的看过),里面的方法就是:图元拾取。
就是判段你的鼠标是否进入了图元的包围盒,包围盒是1个矩形,或者n个矩形的复合叠加。
2D游戏中的子弹的碰撞检测也是用的包围盒的方法。
还有,每一个图元都要做成一个对象,(例如:一条线段就是一个图元,用一个类来实例化。)
蒋晟 2009-04-08
  • 打赏
  • 举报
回复
参考VC文档中的MFC示例DrawCLI。
zlalalal 2009-04-08
  • 打赏
  • 举报
回复
对 还有 我用的是 vs 2005

19,468

社区成员

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

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