Creating Scroll Bars

When creating an overlapped, pop-up, or child window, you can add standard scroll bars by using the CreateWindowEx function and specifying WS_HSCROLL, WS_VSCROLL, or both styles. Doing this adds a horizontal or vertical scroll bar, or both, to the window. The following example creates a window with standard horizontal and vertical scroll bars.

hwnd = CreateWindowEx( 
    0L,                          // no extended styles 
    "MyAppClass",                // window class 
    "Scroll Bar Application",    // text for window title bar 
    WS_OVERLAPPEDWINDOW |        // window styles 
        WS_HSCROLL | 
        WS_VSCROLL, 
    CW_USEDEFAULT,             // default horizontal position 
    CW_USEDEFAULT,             // default vertical position 
    CW_USEDEFAULT,             // default width 
    CW_USEDEFAULT,             // default height 
    (HWND) NULL,         // no parent for overlapped windows 
    (HMENU) NULL,        // window class menu 
    hinst,               // instance owning this window 
    (LPVOID) NULL        // pointer not needed 
); 
 

To process scroll bar messages for these scroll bars, you must include appropriate code in the main window procedure.

When using the CreateWindowEx function to create a window, you can add a scroll bar control by specifying the scrollbar window class. This creates a horizontal or vertical scroll bar, depending on whether SBS_HORZ or SBS_VERT is specified as the window style. The scroll bar size and its position relative to its parent window can also be specified. The following example creates a horizontal scroll bar control and positions it in the upper right corner of the window.

hwndScroll = CreateWindowEx( 
    0L,                          // no extended styles 
    "SCROLLBAR",                 // scroll bar control class 
    (LPSTR) NULL,                // text for window title bar 
    WS_CHILD | SBS_HORZ,         // scroll bar styles 
    0,                           // horizontal position 
    0,                           // vertical position 
    200,                         // width of the scroll bar 
    CW_USEDEFAULT,               // default height 
    hwnd,                   // handle to main window 
    (HMENU) NULL,           // no menu for a scroll bar 
    hinst,                  // instance owning this window 
    (LPVOID) NULL           // pointer not needed 
);