首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何调整滚动条的缩略图大小

如何调整滚动条的缩略图大小
EN

Stack Overflow用户
提问于 2009-09-11 00:29:28
回答 2查看 3.3K关注 0票数 3

如果您打开记事本,添加十行并调整编辑器大小以仅显示九行,则拇指轨迹(滚动条上的可拖动块)几乎是垂直滚动条的整个长度。如果你添加几千行,拇指轨迹只有几个像素高。

我想在我实现水平滚动条的TCustomControl后代中复制这个行为。因此,我在我的窗口样式(用CreateParams)中添加了WS_HSCROLL,并为WM_HSCROLL实现了一个处理程序。在此过程中,我使用SetScrollRange和SetScrollPos来管理拇指轨迹的范围和位置-但这个小but仍然是一个近乎完美的正方形。

我遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-11 01:52:47

The documentation建议使用SetScrollInfo,而不是SetScrollRangeSetScrollPos

正如Wouter's answer所指出的,您还需要设置页面大小。位置和范围告诉操作系统拇指的中心所属的位置,但是页面大小告诉操作系统多少范围是可见的,这就决定了拇指的大小。为此,您必须使用SetScrollInfo;另外,它允许您一次设置位置、范围和页面大小。

TCustomControlTWinControl只有一个不同之处:它有一个画布。TScrollingWinControl也只有一个不同之处:它有滚动条。向TScrollingWinControl子体添加画布应该比向TCustomControl子体添加滚动条容易得多-从VCL源代码复制和粘贴的代码更少。更改控件的基类,然后查看您所处的位置。

即使这不是一种选择,您仍然可以看看TScrollingWinControlTControlScrollBar是如何协同工作的。

票数 4
EN

Stack Overflow用户

发布于 2009-09-11 01:44:51

可以使用PageSize属性来影响拇指大小。

示例:

代码语言:javascript
复制
ScrollBar1.Min      := 0;
ScrollBar1.Max      := 100;
ScrollBar1.Position := 70;
ScrollBar1.PageSize := 50;

将如下所示:

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1408434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档