虚心请教高手,关于VC图像缩放、滚动条。。。(我是初学小菜鸟啊!)
编了一个绘图程序,现已经可以放大缩小(点击鼠标左键放大,右键缩小),但是我想要缩放后视口中心点为鼠标左键点击时的那一点,需要对缩放后的图形做平移,1.但是怎么获取画图区的...
编了一个绘图程序,现已经可以放大缩小(点击鼠标左键放大,右键缩小),但是我想要缩放后视口中心点为鼠标左键点击时的那一点,需要对缩放后的图形做平移,
1.但是怎么获取画图区的中心点坐标?我这么干的:
CClientDC dc(this);
SIZE sizeView;
sizeView=dc.GetViewportExt();
但是好像没用。在最后一条代码后加了一个断点,发现sizeView.cx=1,sizeView.cy=1,但是我的窗口大小明显不是1X1大小的啊!
2.我想做一个实时变化的滚动条:当我画线至客户区边界时,滚动条会随着鼠标的向外移动而变短(这样,画图时,就不受客户区的大小限制了);该怎么做?
3.当我缩放图形时,滚动条会随着放大倍数的变化而成比例地伸缩(这样,不管放大多少倍,我只要移动滚动条就可以看到视口以外的所有图形了),怎么办?
我这么干,没成功:long a=(long)(1280*multiple);//multiple为缩放倍数
long b=(long)(800*multiple);
SetScrollSizes(MM_TEXT,CSize(a,b));
4.我的屏幕为1280X800,我设置了SetScrollSizes(MM_TEXT,CSize(1280,800));为什么最大化后后,还是有滚动条啊!我改成SetScrollSizes(MM_TEXT,CSize(1277,678)),最大化后才没有滚动条的!什么原因? 展开
1.但是怎么获取画图区的中心点坐标?我这么干的:
CClientDC dc(this);
SIZE sizeView;
sizeView=dc.GetViewportExt();
但是好像没用。在最后一条代码后加了一个断点,发现sizeView.cx=1,sizeView.cy=1,但是我的窗口大小明显不是1X1大小的啊!
2.我想做一个实时变化的滚动条:当我画线至客户区边界时,滚动条会随着鼠标的向外移动而变短(这样,画图时,就不受客户区的大小限制了);该怎么做?
3.当我缩放图形时,滚动条会随着放大倍数的变化而成比例地伸缩(这样,不管放大多少倍,我只要移动滚动条就可以看到视口以外的所有图形了),怎么办?
我这么干,没成功:long a=(long)(1280*multiple);//multiple为缩放倍数
long b=(long)(800*multiple);
SetScrollSizes(MM_TEXT,CSize(a,b));
4.我的屏幕为1280X800,我设置了SetScrollSizes(MM_TEXT,CSize(1280,800));为什么最大化后后,还是有滚动条啊!我改成SetScrollSizes(MM_TEXT,CSize(1277,678)),最大化后才没有滚动条的!什么原因? 展开
若以下回答无法解决问题,邀请你更新回答
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询