MFC绘制坐标图,怎么才能使折线图表示的范围变大?

在Static控件上绘制了一个折线图,但是由于窗口大小是有限的,而我的数据如果太大就会让折现图超出范围而不能显示或者直接跑到主窗口上了,我想有没有一种方法使坐标图上下滚动... 在Static控件上绘制了一个折线图,但是由于窗口大小是有限的,而我的数据如果太大就会让折现图超出范围而不能显示或者直接跑到主窗口上了,我想有没有一种方法使坐标图上下滚动,当我想看上面的图形时就拖动滑轮,就和看网页一样,想看面的就拉滑条,这样的坐标图Static能不能做到?有没有这种方法?提供思路也行,谢谢! 展开
 我来答
bhtzu
推荐于2016-08-04 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4198万
展开全部

没有特别简单直接的办法,在静态框上这样实现。如果可以使用文档视图结构,那么使用CScrollView可以很方便的实现。


在静态框上做,手工增加处理代码,需要分两个步骤:

  1. 实现局部显示。这里你可以在OnPaint中通过坐标计算和范围计算来实现不超出范围显示,也可以通过内存DC建一个大的画布,然后根据需要显示区块只BitBlt到实际dc一个部分(推荐后一种)

  2. 你需要处理滚动或者拖动。滚动处理需要自己增加两个滚动条控件,并响应滚动消息,记录滚动位置和更新界面;拖动是在OnMouseMove里面,记录拖放距离并计算位置变化。当然,这两种只需要一种即可实现效果,两种都处理更好。

更多追问追答
追问
请问重绘怎么办?
追答
OnPaint就是对重绘的实现。只要这里计算好了,重绘就没问题。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式