本帖最后由 xychzh 于 2010-11-04 14:54:08 编辑

解决方案 »

  1.   


    void CGameTileMapEditorView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
    {
    CGameTileMapEditorDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    if (!pDoc)
    return; RECT rcMapView;
    this->GetClientRect(&rcMapView);
    int mapMaxOffsetX = pDoc->m_MapWidth - rcMapView.right;
    int mapMaxOffsetY = pDoc->m_MapHeight - rcMapView.bottom;
    int CurPos = GetScrollPos(SB_VERT); switch(nSBCode)
    {
    // 向上滚动一个位置
    case SB_LINEUP:
    CurPos--;
            break;
    // 向下滚动一个位置
    case SB_LINEDOWN:
            CurPos++;
            break;
    // 向上滚动一页
    case SB_PAGEUP:
    CurPos -= 10;
            break;
    // 向下滚动一页
    case SB_PAGEDOWN:
    CurPos += 10;
            break;
    // 滚动到最上边
    case SB_TOP:
    CurPos = 0;
    break;
    // 滚动到最下边
    case SB_BOTTOM:
            CurPos = mapMaxOffsetX;
            break;
    // 滚动到一个绝对位置。当前位置在nPos中指定
    case SB_THUMBPOSITION:
            CurPos = nPos;
            break;
    // 将滚动块拖动到指定的位置。当前的位置由nPos参数指定
    case SB_THUMBTRACK:
            CurPos = nPos;
    // 滚动条拖动结束(松开鼠标)
    case SB_ENDSCROLL:
            break;
    } SetScrollPos(SB_VERT, CurPos);
    pDoc->UpdateMiniMapInfo(pDoc->m_MapPos.x, -CurPos); CView::OnVScroll(nSBCode, nPos, pScrollBar);
    }一个函数都没人愿意帮忙贴一下- -。
    散分。