说明: 从文件中每次读出一行添加到视图中。要求支持鼠标,键盘操作滚动条。

解决方案 »

  1.   

    先问一下你做的是什么?干什么不用CEditView?
      

  2.   

    是学习MFC,用SDK我会,但是自己要去编写处理客户区更新的逻辑。我想用MFC应该没有那么复杂吧。
      

  3.   

    那你是以什么作为起点?一个普通的CView?还是CScrollView?,SDK你会做的话,想来你也知道你到底什么功能不会作吧?呵呵,现在是我问你答
      

  4.   

    你作参考吧
    CElecView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
    {switch (nChar)
    {
    case VK_HOME:
    OnVScroll(SB_TOP,0,NULL);
    OnHScroll(SB_LEFT,0,NULL);
    break;
    case VK_END:
    OnVScroll(SB_BOTTOM,0,NULL);
    OnHScroll(SB_RIGHT,0,NULL);
    break;
    case VK_UP:
    OnVScroll(SB_LINEUP,0,NULL);
    break;
    case VK_DOWN:
    OnVScroll(SB_LINEDOWN,0,NULL);
    break;
    case VK_PRIOR:
    OnVScroll(SB_PAGEUP,0,NULL);
    break;
    case VK_NEXT:
    OnVScroll(SB_PAGEDOWN,0,NULL);
    break;
    case VK_LEFT:
    OnHScroll(SB_LINELEFT,0,NULL);
    break;
    case VK_RIGHT:
    OnHScroll(SB_LINERIGHT,0,NULL);
    break;
    default:
    break;
    CScrollView::OnKeyDown(nChar, nRepCnt, nFlags);
    }
      

  5.   

    在试图里面用下面的语句获得滚动条范围
    SetScrollSizes(MM_TEXT, GetDocument()->GetDocSize());//设定滚动条范围
    利用GetDocSize()设置滚动条范围
      

  6.   

    SetScrollSizes(int nMapMode, SIZE sizeTotal, const SIZE& sizePage = sizeDefault, const SIZE& sizeLine = sizeDefault )函数的参数意义是什么,
    MSDN上的解释是:
    sizeTotal:The total size of the scroll view. The cx member contains the horizontal extent. The cy member contains the vertical extent. Sizes are in logical units. Both cx and cy must be greater than or equal to 0.//逻辑单位是指什么,是自己设置的滚动范围值吗?sizePage:
    The horizontal and vertical amounts to scroll in each direction in response to a mouse click in a scroll-bar shaft. The cx member contains the horizontal amount. The cy member contains the vertical amount. //数量是指什么,是指象素值吗?sizeLineThe horizontal and vertical amounts to scroll in each direction in response to a mouse click in a scroll arrow. The cx member contains the horizontal amount. The cy member contains the vertical amount. //同上。
      

  7.   

    http://www.vczx.com/article/show.php?id=188
    这个例子里有一个类是你需要的。
    今天我把他修改了一下,因为我发现在有一个bug,但是这个类,还是很有用的,基本上可以解决你现在想要觖决的问题。CNetTextWndEx是从CScrollview派生,主要处理别人发过来的消息,消息有可能很长,所以,他要动态计算高度,设置视图滚动范围。还有其他一些技巧,可能也是你需要的。