画了一些图,比较大,希望查看全部,就必须要滚动视图,如何判断?而又如何滚动呢?说明一下:我在资源编辑窗口中,用鼠标拖拽的窗口大小大约只有600*500。可以画出完整的大图吗?请指教,谢谢了。

解决方案 »

  1.   

    在资源编辑窗口中,选中FormView,右键,属性,styles中可增加滚动的支持
      

  2.   

    可以。你不需在资源编辑窗口中,用鼠标拖拽的窗口大小,只需使用SetScrollSizes如:
    SetScrollSizes(MM_TEXT, CSize(10000,10000));
      

  3.   

    先要保证你的View是从CScrollView派生的。
    在OnInitialUpdate()设置
    sizeTotal.cx =...
    sizeTotal.cy =...
      

  4.   

    那应当是可以的,我的子窗口是从CFormView派生的。那我在打印的时候,是否下句的MM_TEXT应当改一改?改成什么?
    SetScrollSizes(MM_TEXT, CSize(10000,10000));
    不知会对打印造成怎样的影像呢?我记得好像有一个帖子谈到了这个MM_TEXT对实际的打印的影像,可是找不到了。谁能简要的说一下啊?谢谢了。
      

  5.   

    默认情况下,使用的就是MM_TEXT,打印出来通常很小。但这不是使用SetScrollSizes(MM_TEXT, CSize(10000,10000));的原因了,在MM_TEXT下打印问题本来就是要单独解决的,如果你使用其它的映射模式,那么你就把SetScrollSizes(...)中的MM_TEXT改成其它的映射模式就是了。
      

  6.   

    对了,就是“映射模式”这个概念。我输入的关键词不对,搜索不到;现在找到了一大堆。DPToLP()是把设备坐标变成逻辑坐标,是不是指将屏幕坐标(左上角为[0,0])转换成笛卡儿坐标?
      

  7.   

    我好像说反了,DPToLP()是把设备坐标变成逻辑坐标,应该是将笛卡儿坐标转换成屏幕坐标(左上角为[0,0],向右向下为正方向)。另外我发现用SetViewportOrg还有Ext无法对CFormView进行整个视图的缩放,是不是这样的?