我在对话框内的一个EDIT BOX内画图,在对话框的OnPaint函数里有下面画图代码:
CWnd* pWnd = GetDlgItem(IDC_EDIT1);
// 指针
CDC* pDC = pWnd->GetDC();
pWnd->Invalidate();
pWnd->UpdateWindow(); CRect rWnd;
pWnd->GetClientRect(&rWnd); CString strText;
RECT rText; strText = _T("Hello");
for (int i =0;i<100;i++)
{
        rText.top = i*20;
rText.bottom = rText.top+20;
        rText.left = 10;
        rText.right = 50;
        pDC->DrawText(strText,&rText,DT_LEFT);
}
   效果图如下:
    但是现在我要达到这样一个效果,所有的画图都不能超出EDIT BOX范围而跑到对话框上去,就是假如到了EDIT BOX底部,EDIT BOX自动加一个垂直滚动条,然后可以继续画.实际上就是如何在EDIT BOX添加一个垂直滚动条使得画图范围始终在EDIT BOX内.

解决方案 »

  1.   

    为什么要用Edit Box呢,你可以完全不用Edit呀。
    换一个Scroll View之类的东东,
      

  2.   


        大侠,那怎么把Scroll View放到对话框上呢?
      

  3.   

    如果用ScrollView,可以自己从CScrollView派生一个类,然后用下面方法创建:
    CRuntimeClass* rc = RUNTIME_CLASS(CMyScrollView);
    CMyScrollView* view = (CMyScrollView*)rc->CreateObject();
    view->Create(NULL, NULL, WS_CHILD|WS_VISIBLE|WS_BORDER, CRect(0,0,200,200), this, 0);
    view->SetScrollSizes(MM_TEXT, CSize(400,400));
    参数根据需要修改,然后在OnDraw函数中绘制界面。