我在视图(view)的OnDraw()函数中进行画图,当图的大小超过屏幕时,如何让视图出现滚动条。看到整个画的图片。
急急急急!

解决方案 »

  1.   

    使用CScrollView,并在需要的时候调整scroll sizes
      

  2.   

    void CT2View::OnDraw(CDC* pDC)
    {
    CT2Doc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    // TODO: add draw code for native data here
    int data[20]={19,21,32,40,41,39,42,35,33,23,21,20,24,11,9,19,22,32,40,42};
    CRect rc;
    GetClientRect(rc);
    rc.DeflateRect(0,0);
    int gridXnums=50,gridYnums=40;
    int dx=rc.Width()/10;
    int dy=rc.Height()/8;
    CRect gridRect(rc.left,rc.top,rc.left+dx*gridXnums,rc.top+dy*gridYnums); CPen gridPen(PS_DOT,0,RGB(0,100,200));
    CPen* oldPen=pDC->SelectObject(&gridPen);
    for(int i=0;i<=gridXnums;i++)
    {
    pDC->MoveTo(gridRect.left+i*dx,gridRect.bottom);
    pDC->LineTo(gridRect.left+i*dx,gridRect.top);
    }
    for(int j=0;j<=gridYnums;j++)
    {
    pDC->MoveTo(gridRect.left,gridRect.top+j*dy);
    pDC->LineTo(gridRect.right,gridRect.top+j*dy);
    }
    }
    我的程序如上,我想在视图中画网格(50*40)但格子比较大怎么能通过滚动条看到全部啊!
      

  3.   

    同意楼上的。把你的视图类改为继承:public CScrollView.其他的好象没什么要修改的。
      

  4.   

    把你的视图类改为继承:public CScrollView
    然后添加函数void CT2View::OnInitialUpdate() 
    {
    CSize sizeTotal(6000, 4000);
    SetScrollSizes (MM_TEXT, sizeTotal);
    }
    你的图越大,将sizeTotal改大即可
    要支持缩放请看另外的资料
      

  5.   

    使用CScrollView,并在需要的时候调整scroll sizes
      

  6.   

    使用CScrollView,并在需要的时候调整scroll sizes