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 of main window */

(HMENU) NULL, /* no menu for a scroll bar */

hinst, /* instance owning this window */

(LPVOID) NULL /* pointer not needed */

);