Windows 滚动条快捷键的简史

Hacker News Top 新闻

摘要

本文探讨了 Windows 中滚动条快捷键的历史,详细介绍了鼠标操作和上下文菜单,并回顾了不同 UI 框架如何实现这些功能,指出生态系统碎片化的问题。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/09/23 18:59

# Windows 滚动条快捷键简史 - The Old New Thing 来源:https://devblogs.microsoft.com/oldnewthing/20260922-00/?p=112719/ 在 Windows 发展的二十年间,滚动条控件只提供少数基本操作。(为便于说明,这里假设滚动条是垂直方向的。)其共有五个鼠标操作区域:滚动条两端的箭头可逐行滚动;滑块与箭头之间的区域可按页滚动;而滑块本身则允许你拖动到特定位置。 Windows 7 为滚动条添加了右键菜单。该菜单包含四个与现有鼠标操作对应的选项、两个与现有键盘操作对应的选项,以及一个全新操作。 菜单选项 鼠标操作 键盘操作 滚动至此 拖动滑块到指定位置 Home(跳至起始位置) 拖动滑块到起始位置 End(跳至结束位置) 拖动滑块到末尾位置 Page Up(向上翻页) 向上翻页 点击上方轨道区域 PgUp 向下翻页 点击下方轨道区域 PgDn 向上滚动 点击向上箭头 ↑ 向下滚动 点击向下箭头 ↓ 其中最有趣的是“滚动至此”功能:你可以直接在目标位置右键单击,然后选择“滚动至此”。这在需要长距离滚动时极为便利,因为无需先抓取滑块再拖动到目的地。你只需关注想跳转的位置,而不必在意当前位置。 我在需要大跨度跳转时经常使用这个右键菜单。 同一时期还加入了一个更隐蔽的快捷键:**按住 Shift 键点击滚动条**可直接跳转到点击位置。 我直到最近才知道这个快捷操作。以前一直依赖那个可靠的右键菜单。 可惜如今几乎无人再使用 Win32 原生滚动条。所有框架都提供了自定义滚动条实现。 Electron 等 Web 应用采用 Chromium 滚动条,虽未实现右键菜单,但至少支持 Shift+点击 快捷键。 WPF XAML 框架似乎同时实现了右键菜单和 Shift+点击 功能。 令人沮丧的是,WinUI XAML 框架既未提供右键菜单也不支持 Shift+点击。(不过已有人提出相关请求 https://github.com/Microsoft/microsoft-ui-xaml/issues/11200)。 Qt 框架提供多个自定义接口,因此实际行为取决于应用开发者:可通过 `SH_ScrollBar_ContextMenu` 启用右键菜单,通过 `SH_ScrollBar_LeftClickAbsolutePosition` 启用“左键点击跳转”,通过 `SH_ScrollBar_MiddleClickAbsolutePosition` 启用“中键点击跳转”。 可叹当我刚了解滚动条的 Shift+点击 快捷键时,生态系统已如此碎片化,以致无法确保其普遍可用。 ### 分类 ### 主题 ## 作者 Raymond Chen Raymond 参与 Windows 演进已逾三十年。2003 年他创办了名为 The Old New Thing 的博客,其受欢迎程度远超想象,这一发展至今仍让他感到不安。该博客后来衍生出同名著作(Addison Wesley 2007年出版)。他偶尔会出现在 Windows 开发文档推特账号上,讲述些并无实用信息的故事。

相似文章

Windows UI 演变:点击未关联的文件

Lobsters Hottest

历史回顾:从 Windows 386 到 Windows XP,Windows 操作系统打开未关联文件的用户界面如何演变,展示了对话框的演进以及 Web 服务提示的引入。

CMD+K快速切换器的发明奇史

Lobsters Hottest

本文探讨了CMD+K快速切换器的历史和发明,这是一个在许多应用程序中用于快速导航的普遍键盘快捷键。

Windows 11 Notepad 中的糟糕菜单栏

Lobsters Hottest

文章批评 Windows 11 Notepad 中的菜单栏存在多个错误和退化,包括鼠标和键盘导航问题,与较旧的 Win32 版本相比。