[图片控件绘图实现滚动效果]

[图片控件绘图实现滚动效果]求助
我在对话框中添加了一个图片控件用来绘图,根据数组绘制带坐标轴的折线图,但是当数组太大时,需要添加一个水平滚动条来显示。
怎么做到滚动滚动条,图像显示呢?

问题重点:

1、如何实现滚动条滚动,折线图跟着变化
2、楼主使用moveto,lineto作图,滚动后,每个点的坐标该怎么确定


第一次接触滚动机制,希望各位大神们能讲详细一些,有教程更好,谢谢!
------解决思路----------------------
Coordinate Space and Transformation Functions
The following functions are used with coordinate spaces and transformations. 

  
 
ClientToScreen  
CombineTransform  
DPtoLP  
GetCurrentPositionEx  
GetGraphicsMode  
GetMapMode  
GetViewportExtEx  
GetViewportOrgEx  
GetWindowExtEx  
GetWindowOrgEx  
GetWorldTransform  
LPtoDP  
MapWindowPoints  
ModifyWorldTransform  
OffsetViewportOrgEx  
OffsetWindowOrgEx  
ScaleViewportExtEx  
ScaleWindowExtEx  
ScreenToClient  
SetGraphicsMode  
SetMapMode  
SetViewportExtEx  
SetViewportOrgEx  
SetWindowExtEx  
SetWindowOrgEx  
SetWorldTransform  


 

------解决思路----------------------
参考 “ScrollBitmap.rar ”
http://download.****.net/detail/schlafenhamster/2899070
“VC60,在dialog上绘图,并实现OnPrintClient(WPARAM wParam, LPARAM lParam)和带参数的OnPaint(WPARAM wParam, LPARAM lParam)”
------解决思路----------------------
假设你的x坐标值是0-Xmax,假设你要观察x0开始的一段数据,(x0在(0-Xmax)之间),
显示区域的最左坐标是x1,也就是说,要将X0映射到x1中,那么

0-Xmax上每点X,就映射到Xa=x-x0+x1,即原图的x点显示到屏幕的Xa点,

在OnPaint中
X0位,MoveTo(Xa0,Y(X0)),          Y(X0)原来数据X0位置的Y值
使用循环 
计算Xa1,LineTo(Xa1,Y(X1))


滚动时,改变X0,然后Invalidate()即可