我想在一个滚动视中画图。具体要求是
(1)视的大小为(w,h);根据参数设定,由用户输入
(2)将视设成(x1,y1)-(x2,y2){具体为(0,0)-(1100,36),即宽为1100,坐标从左到右为0-1100,高为36,坐标从上到下为0-36。}
(3)视的原点在左上角(0,0)。
以上设置主要是为下面画图作准备,因为我希望下面画图的坐标能与实际坐标(有单位)一致。
(4)画图:
 如:在坐标为(10,5)-(1000,5)是一条生产线,我想用一条直线表示。(坐标系统为上面的设置下才是这个坐标).我希望能够直接用下面的语句画图。
pDC->MoveTo(10,5);
pDC->LineTo(1000,5);
我看了帮助中的SetMapMode()函数,看完觉得懂了,但用起来却总是出错,弄得云里雾里,不知所措。
希望大虾们不吝赐教,能给我一个具体实例,或把具体代码写上,小弟感激不尽。

解决方案 »

  1.   

    设置大小使用MoveWindow(),里面包括了坐标位置和大小了。
    如果要在视中画东西,最好使用双缓冲来实现。先建一个兼容DC,在该DC下画好了,再在OnDraw中使用
    pDC->Bitblt()来显示,这样避免了闪烁。
      

  2.   

    =>betsyalan(alan):
    多谢你的解答。不过你说的可能跟我说的不完全是一回事。实际上窗口的具体大小在其次,关键是相对比例要正确。我的意思就是将视重新定义为自己的坐标,不管视的实际大小是多少,100*100也好,100*200也好,都需要看作1100*36。这样后来作图就明快多了。实际上,我在VB上已实现,而且很简单,picutre1.scase(0,0)-(1100,36),一句话,就OK了,现在我想将这个程序移植到VC上。
      

  3.   

    只有另外慢慢想办法了。有什么好的建议,欢迎给我发邮件啊:[email protected].多谢。