- Table of Contents
- Copyright
- About the Authors
- About the Contributors
- Acknowledgments
- Tell Us What You Think!
- Introduction
- How to Use This Book
- What You Need to Use This Book
- What's New in Visual C++ 6.0
- Contacting the Main Author
- Part I: Introduction
- Chapter 1. The Visual C++ 6.0 Environment
- Part II: MFC Programming
- Chapter 2. MFC Class Library Overview
- Chapter 3. MFC Message Handling Mechanism
- Chapter 4. The Document View Architecture
- Chapter 5. Creating and Using Dialog Boxes
- Chapter 6. Working with Device Contexts and GDI Objects
- Chapter 7. Creating and Using Property Sheets
- Chapter 8. Working with the File System
- Chapter 9. Using Serialization with File and Archive Objects
- Part III: Internet Programming with MFC
- Chapter 10. MFC and the Internet Server API (ISAPI)
- Chapter 11. The WinInet API
- Chapter 12. MFC HTML Support
- Part IV: Advanced Programming Topics
- Chapter 13. Using the Standard C++ Library
- Chapter 14. Error Detection and Exception Handling Techniques
- Chapter 15. Debugging and Profiling Strategies
- Chapter 16. Multithreading
- Chapter 17. Using Scripting and Other Tools to Automate the Visual C++ IDE
- Part V: Database Programming
- Chapter 18. Creating Custom AppWizards
- Chapter 19. Database Overview
- Chapter 20. ODBC Programming
- Chapter 21. MFC Database Classes
- Chapter 22. Using OLE DB
- Chapter 23. Programming with ADO
- Part VI: MFC Support for COM and ActiveX
- Chapter 24. Overview of COM and Active Technologies
- Chapter 25. Active Documents
- Chapter 26. Active Containers
- Chapter 27. Active Servers
- Chapter 28. ActiveX Controls
- Part VII: Using the Active Template Library
- Chapter 29. ATL Architecture
- Chapter 30. Creating COM Objects Using ATL
- Chapter 31. Creating ActiveX Controls Using ATL
- Chapter 32. Using ATL to Create MTS and COM+ Components
- Part VIII: Finishing Touches
- Chapter 33. Adding Windows Help
- Part IX: Appendix
Message Categories
Almost everything that your application will do is based on handling Windows messages. These come in three basic varieties: general Windows messages, control notifications, and commands:
- The Message IDs for Windows messages are generally prefixed by WM_—for example, WM_PAINT or WM_QUIT. These messages, which are handled by windows and views, can represent a wide range of things that happen in your application. Thankfully, MFC provides default handlers for most of these, as you will see. Note that WM_COMMAND messages receive special handling as either control notifications or commands.
- Control notifications are WM_COMMAND messages sent from child windows to their parent window. For example, an edit control will send an EN_CHANGE message to its parent window (usually a dialog box) whenever its content may have changed. Windows messages and control notifications are usually handled by window objects—that is, objects derived from class CWnd.
- Commands are WM_COMMAND messages from menus, buttons (including toolbars), and accelerator keys. Command messages may be handled by a wider array of classes, including documents, document templates, windows, views, and the application itself.
Message Handling in MFC | Next Section

Account Sign In
View your cart