有这样一个问题:(全部分值相求)

时间:2021-02-28 08:18:53
MDI中,我在视窗中画了若干个位图,这些位图可以被拖动,(我定义了一个结构体,结构体定义了位图的POINT 和TYPE,再用这个结构体定义一个数组来保存这些已被画在视窗中的位图)现在我还要在这些位图之间连线,当我拖动一个位图时,与之相关联的线也要跟着移动。
 问题:要让“与之相关联的线也要跟着移动。”请问这个该如何来实现?即使一个思路也可以!
  谢谢您的参与!!

8 个解决方案

#1


你是怎么定义或记住这些线的?又是怎么画的?移动位图时改变某些线的一头,重画不行么?

#2


在结构体中记住线的信息,。。。重画

#3


呵,你问的这很关键,我没有说清楚。
我同样用一个结构体定义折线(二个直角边,一共三个点,由起点和终点总可以算出折点)的信息(起点和终点),再用这个结构体定义已被画出的所有的线,画线用如下的函数:
   pDC->Polyline(pt,3);
问题是,如何让位图和与之相联系的线关联起来,即我移动一个位图,怎么知道和它关联的线有多少,它们的另一点在哪?
  如果有时间,请您解释一下!非常感谢!!

#4


在位图结构里记录不就行了!

#5


Aad you can recored the Bitmap's position and get the Relation of other Bitmap's position and get the Three Point !

Try!

#6


这样行么,
你不要记线的两点信息,只记线的两点之位图号,
当paint事件发生时,位图号的位置变化让线的两点位置随之变化
这样行么,
但这样的线必须是连线
所以,在流程图中,连线和线是不同的组件!

#7


线没有位置,或说它的位置是位图的序号
每一回都是计算出来的,
这样,当然不用考虑另一点了,

#8


当你连线的时候,你好比定义了两个位图间的关系。一般来说,你需要定义一个新的结构,其中包括两个位图的指针,两个点,当然你可能需要建立一个大的类来封装这些东西,在其中你可以对这个结构的集合做个循环,找出每个位图上的所有点什么的。移动一个位图时,你可以更新所有跟这个位图有关的那些点。画图时,你只要对这个集合做循环,连接对应的点

#1


你是怎么定义或记住这些线的?又是怎么画的?移动位图时改变某些线的一头,重画不行么?

#2


在结构体中记住线的信息,。。。重画

#3


呵,你问的这很关键,我没有说清楚。
我同样用一个结构体定义折线(二个直角边,一共三个点,由起点和终点总可以算出折点)的信息(起点和终点),再用这个结构体定义已被画出的所有的线,画线用如下的函数:
   pDC->Polyline(pt,3);
问题是,如何让位图和与之相联系的线关联起来,即我移动一个位图,怎么知道和它关联的线有多少,它们的另一点在哪?
  如果有时间,请您解释一下!非常感谢!!

#4


在位图结构里记录不就行了!

#5


Aad you can recored the Bitmap's position and get the Relation of other Bitmap's position and get the Three Point !

Try!

#6


这样行么,
你不要记线的两点信息,只记线的两点之位图号,
当paint事件发生时,位图号的位置变化让线的两点位置随之变化
这样行么,
但这样的线必须是连线
所以,在流程图中,连线和线是不同的组件!

#7


线没有位置,或说它的位置是位图的序号
每一回都是计算出来的,
这样,当然不用考虑另一点了,

#8


当你连线的时候,你好比定义了两个位图间的关系。一般来说,你需要定义一个新的结构,其中包括两个位图的指针,两个点,当然你可能需要建立一个大的类来封装这些东西,在其中你可以对这个结构的集合做个循环,找出每个位图上的所有点什么的。移动一个位图时,你可以更新所有跟这个位图有关的那些点。画图时,你只要对这个集合做循环,连接对应的点