September 22nd, 2026
mind blowncompelling2 reactions

A brief history of Windows scroll bar shortcuts

For the first two decades of Windows, the scroll bar control had just a few basic operations. (For expository purposes, let’s assume that the scroll bar is vertical.) There are five mouse targets: The arrows at the ends of the scroll bar scroll by a line. The regions between the thumb and the arrows scroll by a page. And the thumb itself lets you drag the scroll bar to a specific position.

Windows 7 Windows 2000 added a right-click menu to the scroll bar. This menu gave you four options that matched existing mouse operations, two operations that matched existing keyboard operations, and a new operation.

Menu option Mouse Keyboard
Scroll Here Drag thumb to position  
Top Drag thumb to start Home
Bottom Drag thumb to end End
Page Up Click in upper gutter PgUp
Page Down Click in lower gutter PgDn
Scroll Up Click on up-arrow
Scroll Down Click on down-arrow

The interesting new one is “Scroll Here”: You can right-click directly on the spot you want to scroll to, and then pick “Scroll Here”. This is much more convenient if you want to scroll a long distance, since you don’t have to grab the scroll bar thumb and then drag it all the way to where you want to go. You can just focus on where you want to go and not where you are coming from.

I used this context menu a lot when I needed to jump long distances.

An even-more-hidden shortcut was added at the same time: Holding Shift while clicking on the scroll bar jumps the thumb directly to the spot where you clicked.

I didn’t know about this shortcut until recently. I had always used my trusty context menu.

Sadly, almost nobody uses Win32 scroll bars any more. Everybody uses frameworks that provide their own custom scroll bars.

Electron and other Web apps use the Chromium scroll bar, which doesn’t implement the context menu, but at least it does implement the Shift+click shortcut.

The WPF XAML framework appears to implement both the context menu Shift+click.

The WinUI XAML framework frustratingly has neither the context menu nor the Shift+click shortcut. (Though at least one person has requested it.)

The Qt framework has multiple customization points, so it’s really up to each app’s developer. You can enable context menus with SH_Scroll­Bar_Context­Menu, you can enable “left-click to jump to a position” with SH_Scroll­Bar_Left­Click­Absolute­Position, and you can enable “middle-click to jump to a position” with SH_Scroll­Bar_Middle­Click­Absolute­Position.

Great, so by the time I learn about a shortcut for scroll bars (Shift+click), the ecosystem has fragmented so much that I can’t even rely on it working.

Topics

Author

Raymond has been involved in the evolution of Windows for more than 30 years. In 2003, he began a Web site known as The Old New Thing which has grown in popularity far beyond his wildest imagination, a development which still gives him the heebie-jeebies. The Web site spawned a book, coincidentally also titled The Old New Thing (Addison Wesley 2007). He occasionally appears on the Windows Dev Docs Twitter account to tell stories which convey no useful information.

8 comments

Sort by :
  • Jason T. Miller

    I knew about Shift+click, but didn't know about the context menu until just now.

    And I just discovered that Chrome (and Edge) enters a weird "move mouse to scroll" mode when you middle click. The Qt behavior sounds more useful.

    More generally, I've found that modern UIs tend to be much easier to navigate with a trackpad (and on Windows, specifically one with Precision Touchpad support) than a mouse, and the slow death of scrollbars is part of the reason why.

    Or better yet, with a combination of mouse and trackpad. Many years ago I developed the habit of using a trackpad with...

    Read more
  • Andreas Rejbrand · Edited

    "Sadly, almost nobody uses Win32 scroll bars any more. Everybody uses frameworks that provide their own custom scroll bars."

    Yes, that's sad. Personally, I develop Win32 desktop applications in Delphi (specifically, the VCL framework, which is just a thin layer on top of the native Windows controls), so all applications I write professionally (for scientific, industrial, or enterprise use) as well as all applications I write at home (mathematical visualisation etc.) are 100% native Windows applications. Of course, with the scroll bar context menu.

    In fact, a few years ago, an update to the VCL made this context menu disappear. Being an...

    Read more
    • LB 8 seconds ago

      Classic Win32 stuff is cool, it just only works (easily) on Windows. If you have a scrollable text area in a video game, you can’t even port it to XBOX until you rip out the Win32 stuff and render it by hand. People generally don’t like maintaining and testing two different versions of the same thing.

  • John Porter Simons

    I just discovered on macOS you can Option+click in the gutter to jump directly there, would have never known if I hadn’t seen this post.

  • Peter Kasting

    I know shift-clicking to snap to a particular position was implemented in Windows XP, because I built the first Chromium scrollbar implementation in 2006 based on the XP scrollbar behavior, which had that already back then. At the time I also reverse-engineered the precise thresholds of how dragging the pointer too far away from the track resulted in snapping back to the scroll origin.