The information in this article applies to:
- Microsoft Windows Software Development Kit (SDK) for Windows
version 3.1
SUMMARY
The Image Editor and the Dialog Editor are two applications provided with
the Windows SDK that demonstrate a "tool box" window. This article
discusses how to implement a tool box window in an application. TOOLBOX is
a file in the Microsoft Software Library that demonstrates the techniques
discussed.
Download TOOLBOX.EXE, a self-extracting file, from the Microsoft Software
Library (MSL) on the following services:
MORE INFORMATION
A tool box window contains a group of icons that the user can choose at any
time. The tool box window always floats above the application with which it
is associated.
The code in TOOLBOX assumes that all buttons in the tool box have the same
size and are equally spaced throughout the window. TOOLBOX implements the
following four steps to create the tool box window:
- Loads the bitmap that provides the visual appearance for all the
buttons.
- Creates the tool box window with the WS_EX_TOPMOST style bit set.
Sizes the window appropriately based on the size of the bitmap.
- Processes the WM_ACTIVATE message in the window procedure for the
application's main window. If the main window or the tool box
window is being activated, TOOLBOX calls SetWindowPos() to add the
WS_EX_TOPMOST style to the window. If a window other than the main
window or the tool box window is being activated, TOOLBOX calls
SetWindowPos() to remove the WS_EX_TOPMOST style from the window.
- Performs the following two steps in the window procedure for the
tool box window:
a. Processes the WM_LBUTTONDOWN message. Performs hit testing to
determine which button the user chose. To make the button appear
depressed, TOOLBOX determines the rectangle for the button.
TOOLBOX uses the InvertRect function to invert the colors of the
button.
b. Processes the WM_PAINT message. TOOLBOX uses the StretchBlt()
function to paint the bitmap onto the window. If any button is
depressed, TOOLBOX inverts the appropriate region as above.
Although this sample does not demonstrate every possibility for tool
box windows, the sample is very straightforward and easily modified.