2


我有一个 CWnd 类名称 mywindow 的成员,
我想向它添加一个滚动条。
我该怎么做?

我已经尝试做:

mywindow.EnableScrollBarCtrl(SB_BOTH,TRUE);

它同时显示水平和垂直滚动条,
但我无法按下按钮或移动滚动条。
我也在第一个命令之后尝试:

mywindow.EnableScrollBar(SB_BOTH,ESB_ENABLE_BOTH);

它什么也没有改变。

有人可以告诉我一个简单的例子如何向这个成员添加滚动条吗?

非常感谢,
塔尔

4

3 回答 3

2

启用滚动条是不够的。您必须对窗口消息WM_HSCROLLWM_VSCROLL. 使用该GetScrollInfo方法获取滚动条的位置(值),然后根据该位置绘制窗口内容。

于 2011-12-27T12:23:45.093 回答
1

查找一些滚动条教程,例如http://www.codeproject.com/KB/dialog/scrolling_support.aspx。本质上,上面 dwo 的评论是您需要做的 - 处理这些消息并设置虚拟客户区大小。

于 2011-12-28T10:11:11.713 回答
0

在滚动条激活之前必须有一些“溢出”。

在您的视图中写入一些“足够长”的数据,滚动条将变为活动状态(至少,这是我之前的经验)。

通常滚动条从 MFC 组件(例如)文本编辑器或表单视图中“自动”处理。即在需要时也会变得可见,也无需显式调用 EnableScrollBarCtrl ...

于 2011-12-25T16:48:10.173 回答