说明: 从文件中每次读出一行添加到视图中。要求支持鼠标,键盘操作滚动条。
解决方案 »
- MFC combobox 问题
- mfc 的哪个函数能获得ftp 中当前文件夹中的文件列表
- 水分一万
- 如何让列表框的滚动条自动滚到最下方呢?
- vc项目模板问题--vc是不是后娘养的?
- VC程序编译通过,但链接的时候出错。求教~
- C语言的问题!
- 救命了。ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CVaasDoc)));程序执行到这报错
- 请高手指点vc的远程控制程序(不同机器)的原理及程序编写、主要调用函数急!!(用vc的socket)
- 关于OCX的问题
- 关于静态变量的问题,感谢回答!!
- VB做成的程序打包很简单,但我不知道怎样把VC也做成能放到没有安装VC++也能够打开执行的请赐教!谢谢!
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);
}
SetScrollSizes(MM_TEXT, GetDocument()->GetDocSize());//设定滚动条范围
利用GetDocSize()设置滚动条范围
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. //同上。
这个例子里有一个类是你需要的。
今天我把他修改了一下,因为我发现在有一个bug,但是这个类,还是很有用的,基本上可以解决你现在想要觖决的问题。CNetTextWndEx是从CScrollview派生,主要处理别人发过来的消息,消息有可能很长,所以,他要动态计算高度,设置视图滚动范围。还有其他一些技巧,可能也是你需要的。