The system sends or posts a system-defined message when it communicates with an application. It uses these messages to control the operations of applications and to provide input and other information for applications to process. An application can also send or post system-defined messages. Applications generally use these messages to control the operation of control windows created by using preregistered window classes.
Each system message has a unique message identifier and a corresponding symbolic constant (defined in the SDK header files) that states the purpose of the message. For example, the WM_PAINT constant requests that a window paint its contents.
Symbolic constants specify the category to which system-defined messages belong. The prefix of the constant identifies the type of window that can interpret and process the message. Following are the prefixes and their related message categories.
Prefix | Message category |
---|---|
ABM | Application desktop toolbar |
BM | Button control |
CB | Combo box control |
CDM | Common dialog box |
DBT | Device |
DL | Drag list box |
DM | Default push button control |
EM | Edit control |
HDM | Header control |
LB | List box control |
LVM | List view control |
PBM | Progress bar |
PSM | Property sheet |
SB | Status bar window |
SBM | Scroll bar control |
STM | Static control |
TB | Toolbar |
TBM | Trackbar |
TCM | Tab control |
TTM | Tooltip control |
TVM | Tree-view control |
UDM | Up-down control |
WM | General window |
General window messages cover a wide range of information and requests, including messages for mouse and keyboard input, menu and dialog box input, window creation and management, and dynamic data exchange (DDE).