如何使用Windows Core API制作无限滚动条控件?

时间:2020-03-05 18:55:48  来源:igfitidea点击:

我该如何做一个?我是Windows API的新手。是否有某种针对这种事情的手册?我对Core API特别感兴趣。感谢任何帮助。

解决方案

回答

"无限"是什么意思?

如果我们指的是用户永远无法滚动到末端的滚动条,则必须处理滚动条的位置更改通知并将位置重置为中间位置。

回答

制作滚动条的方法有以下三种:窗口的滚动条;滚动条;滚动条;滚动条。滚动条控件;或者自定义控件。

Windows在非客户端(NC)区域中具有滚动条。这些是窗口框架的一部分,因此它们没有自己的窗口句柄或者任何东西。

滚动条控件是滚动条的子窗口实现。因为它们是子窗口,所以它们为我们提供了更多的灵活性。我们可以对这些控件之一进行子类化或者超类化,以实现"无限"功能。

最后一个选项是自定义控件:我们只需从头开始创建自己的滚动条即可。创建单个子窗口,自己绘制,自己处理所有鼠标和键盘输入,并自己实现滚动条消息。这实际上并不像听起来那样难。

我可能会建议超类滚动条控件。在我们自己的滚动条wndproc中处理滚动消息,然后退回到标准滚动条wndproc进行绘画等。