1. The message is send to the window. And it is sent to the Window Procedure.
2. The message map holds all the message handlers.
3. The window procedure looks for the message map for the handler for the received message.
4. The CWnd :: WindowProc calls the handler and passes the significant message parameters.
5. If the message handler is not in the message map, then the default message handler, that is, CWnd::DefWindowProc is called. The DefWindowProc handler gives the default behavior like moving, sizing for all the windows.