MFC添加滚动条到CWnd成员

MFC add scrollbar to CWnd member

本文关键字:CWnd 成员 滚动条 添加 MFC      更新时间:2023-10-16


我有一个类名为mywindow的CWnd成员
我想给它添加一个滚动条。
我怎么能做到呢?

i try already do:

mywindow.EnableScrollBarCtrl(SB_BOTH,TRUE);

显示水平和垂直滚动条,
但是我不能按按钮或移动滚动条。
我也试着在第一个命令之后:

mywindow.EnableScrollBar(SB_BOTH,ESB_ENABLE_BOTH);

它什么也改变不了。

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

谢谢,
Tal

仅仅启用滚动条是不够的。您必须对窗口消息WM_HSCROLLWM_VSCROLL作出反应。使用GetScrollInfo方法,你得到滚动条的位置(值),然后你根据这个位置绘制你的窗口内容。

查找一些滚动条教程,例如http://www.codeproject.com/KB/dialog/scrolling_support.aspx。实际上,dwo上面的注释就是您需要做的—处理这些消息并设置虚拟客户端区域大小。

在滚动条变为活动状态之前,必须有一些'溢出'。

在视图中写入一些"足够长的"数据,滚动条将变得活跃(至少,这是我以前的经历)。

通常滚动条从MFC组件(例如文本编辑器或表单视图)"自动"处理。也就是说,将在需要时变得可见,也不需要显式调用EnableScrollBarCtrl…