MFC中,如何在对话框下,画一个带滚动条的矩形框

MFC中,怎么在对话框上,画一个带滚动条的矩形框?
假设,CRect rect(0,0,500,2000);

将rect画在对话框上,并添加一个垂直滚动条?因为rect太长,不能全部在对话框上显示?

求高手指点

------解决方案--------------------
.....
把dialog设置为滚动的,加上滚动处理事件。
dialog->attribute->styles->hScroll, vScroll checked.

add message function OnHScroll, OnVScroll

C/C++ code

void xxxx::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) {
    SCROLLINFO scrollinfo;
    GetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
    switch (nSBCode) {
    case SB_BOTTOM://滑块滚动到最底部
        ScrollWindow(0,(scrollinfo.nPos-scrollinfo.nMax)*10);
        scrollinfo.nPos = scrollinfo.nMax;
        SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
        break;
    case SB_TOP://滑块滚动到最顶部
        ScrollWindow(0,(scrollinfo.nPos-scrollinfo.nMin)*10);
        scrollinfo.nPos = scrollinfo.nMin;
        SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
        break;
    case SB_LINEUP://单击上箭头
        scrollinfo.nPos -= 1;
        if (scrollinfo.nPos){
            scrollinfo.nPos = scrollinfo.nMin;
            break;
        }
        SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
        ScrollWindow(0,10);
        break;
    case SB_LINEDOWN://单击下箭头
        scrollinfo.nPos += 1;  
        if (scrollinfo.nPos>scrollinfo.nMax) {
            scrollinfo.nPos = scrollinfo.nMax;
            break;
        }
        SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
        ScrollWindow(0,-10);
        break;
    case SB_PAGEUP://单击滑块上方空白区域
        scrollinfo.nPos -= 5;
        if (scrollinfo.nPos) {
            scrollinfo.nPos = scrollinfo.nMin;
            break;
        }
        SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
        ScrollWindow(0,10*5);
        break;
    case SB_PAGEDOWN://单击滑块下方空白区域
        scrollinfo.nPos += 5;
        if (scrollinfo.nPos>scrollinfo.nMax) {  
            scrollinfo.nPos = scrollinfo.nMax;
            break;
        }  
        SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
        ScrollWindow(0,-10*5);
        break;
    case SB_ENDSCROLL://鼠标离开滑块,结束滑块拖动
        //MessageBox("SB_ENDSCROLL");
        break;
    case SB_THUMBPOSITION:
        break;
    case SB_THUMBTRACK://拖动滑块
        ScrollWindow(0,(scrollinfo.nPos-nPos)*10);
        scrollinfo.nPos = nPos;
        SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
        break;
    }
    CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
}

void xxxx::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) {
    SCROLLINFO scrollinfo;
    GetScrollInfo(SB_HORZ,&scrollinfo,SIF_ALL);
    switch (nSBCode) {
    case SB_LEFT:
        ScrollWindow((scrollinfo.nPos-scrollinfo.nMin)*10,0);
        scrollinfo.nPos = scrollinfo.nMin;
        SetScrollInfo(SB_HORZ,&scrollinfo,SIF_ALL);
        break;
    case SB_RIGHT:
        ScrollWindow((scrollinfo.nPos-scrollinfo.nMax)*10,0);
        scrollinfo.nPos = scrollinfo.nMax;
        SetScrollInfo(SB_HORZ,&scrollinfo,SIF_ALL);
        break;
    case SB_LINELEFT:
        scrollinfo.nPos -= 1;
        if (scrollinfo.nPos) {
            scrollinfo.nPos = scrollinfo.nMin;
            break;
        }
        SetScrollInfo(SB_HORZ,&scrollinfo,SIF_ALL);
        ScrollWindow(10,0);
        break;
    case SB_LINERIGHT:
        scrollinfo.nPos += 1;
        if (scrollinfo.nPos>scrollinfo.nMax) {
            scrollinfo.nPos = scrollinfo.nMax;
            break;
        }
        SetScrollInfo(SB_HORZ,&scrollinfo,SIF_ALL);
        ScrollWindow(-10,0);
        break;
    case SB_PAGELEFT:
        scrollinfo.nPos -= 5;
        if (scrollinfo.nPos) {
            scrollinfo.nPos = scrollinfo.nMin;
            break;
        }
        SetScrollInfo(SB_HORZ,&scrollinfo,SIF_ALL);
        ScrollWindow(10*5,0);
        break;
    case SB_PAGERIGHT:
        scrollinfo.nPos += 5;
        if (scrollinfo.nPos>scrollinfo.nMax) {
            scrollinfo.nPos = scrollinfo.nMax;
            break;
        }
        SetScrollInfo(SB_HORZ,&scrollinfo,SIF_ALL);
        ScrollWindow(-10*5,0);
        break;
    case SB_THUMBPOSITION:
        break;
    case SB_THUMBTRACK:
        ScrollWindow((scrollinfo.nPos-nPos)*10,0);
        scrollinfo.nPos = nPos;
        SetScrollInfo(SB_HORZ,&scrollinfo,SIF_ALL);
        break;
    case SB_ENDSCROLL:
        break;
    }
    CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}