怎么实现前后视图? 能提供个思路吗?

Maggie 2008-03-24 09:29:17
怎么实现前后视图? 能提供个思路吗?
我知道得记录比例尺,中心点坐标
但是怎么掉用这些记录的值,再调用的过程中还会去记录
怎么解决
...全文
114 9 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
等待牛人来答.
iyranly 2008-03-25
  • 打赏
  • 举报
回复
你使用的是MFC!
你定义的struct Rect有什么用吗?MFC就有CRect,为何不用它?
Maggie 2008-03-25
  • 打赏
  • 举报
回复
不是的, 只是gis的 PAN ZOOM 两个功能 ,能前后视图
我的问题已经解决了
giszpp 2008-03-25
  • 打赏
  • 举报
回复
class MyGisView{
public:
MyGisView() {}
//
public:
struct Rect{
double left;
double right;
double top;
double bottom;
} m_viewRect[100];
};
////////////
MyGisView vwGis;
vwGis.m_viewRect[0].left = 100;
/////////////////
测试了没有问题阿

另外,楼主是不是想做Redo/Undo功能,就像一般GIS功能中的撤销、重做,恢复前一视图等
Maggie 2008-03-24
  • 打赏
  • 举报
回复
我换了个思路 , 只记录视图的边界值
想用这个结构体,
class CSonghuajiangGISView : public CView
{

public:
struct Rect
{
double letf;
double top;
double right;
double buttom;
}rect[1000];
。。。。。。。。。。。。。。
}
用的时这样
ViewRect =m_SuperMap.GetViewBounds();
rect[iCurrent].left = ViewRect.GetLeft();
rect[iCurrent].top = ViewRect.GetTop();
rect[iCurrent].right = ViewRect.GetRight();
rect[iCurrent].buttom= ViewRect.GetBottom();
iCurrent ++;
出现了 这样的错误 error C2039: 'left' : is not a member of 'Rect'
isview.h(21) see declaration of 'Rect'
怎么改下啊?
duyanbin_sy 2008-03-24
  • 打赏
  • 举报
回复
做两个类似栈的东西,用vector就可以实现,也就是说你做的功能相当于记事本或WORD的undo/redo功能.
有用户操作时,中心点比例等信息保存在UNDO栈中,按下向前键时,UNDO中的信息移动到REDO栈中,同时调用移动操作.
如果调用向后键时,把REDO栈中的移动UNDO栈中,同时调用移动操作.
Maggie 2008-03-24
  • 打赏
  • 举报
回复
请大家关注下啊
Maggie 2008-03-24
  • 打赏
  • 举报
回复
哦,比如在 Spuermap Objects (GIS的二次开发中)要做个前后视图的浏览
我的每次改动视图都记录下来,比如变化了 1,2,3,4,5 次(中心点移动)(比例尺变化)当点击前视图按钮
就会返回到第三次 3,然后我在改变视图 比如比例尺变化了1,2次 ,在想返回,就这样的过程
怎么解决,提供个思路
iyranly 2008-03-24
  • 打赏
  • 举报
回复
说详细一点,或者举个例子
相关推荐
发帖
图形处理/算法

1.9w+

社区成员

VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
帖子事件
创建了帖子
2008-03-24 09:29
社区公告
暂无公告