MFC将滚动条添加到CWnd成员

时间:2011-12-25 16:30:45

标签: c++ mfc scrollbar cwnd


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

我已经尝试过了:

mywindow.EnableScrollBarCtrl(SB_BOTH,TRUE);

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

mywindow.EnableScrollBar(SB_BOTH,ESB_ENABLE_BOTH);

它没有任何改变。

有人可以向我展示一个如何向此成员添加滚动条的简单示例吗?

非常感谢,
塔尔

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

滚动条变为活动状态之前必须有一些“溢出”。

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

通常,滚动条会从MFC组件(例如)文本编辑器或表单视图中“自动”处理。即在没有显式调用EnableScrollBarCtrl ...

的情况下,在需要时也会变得可见

答案 2 :(得分:0)

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