Use ON_MESSAGE() Macro to Map Less-Common Messages

Last reviewed: October 10, 1997
Article ID: Q99848
7.00 | 1.00 1.50 1.51 1.52 | 1.00 2.00 2.10 4.00
MS-DOS | WINDOWS             | WINDOWS NT
kbprg

The information in this article applies to:

  • The Microsoft Foundation Classes (MFC) included with:

        - Microsoft C/C++ version 7.0
        - Microsoft Visual C++ for Windows, versions 1.0, 1.5, 1.51, and
          1.52
        - Microsoft Visual C++ 32-bit Edition, version 1.0, 2.0, 2.1, and 4.0
    

SUMMARY

The Microsoft Foundation Class Library includes macros that an application can include in the message map of a CWnd or CWnd derived object.These macros, such as ON_WM_PAINT() and ON_WM_SIZE(), map common messages to default handler functions. The Microsoft Foundation Class Library provides macros for all standard window messages. To process user-defined message or less-common window messages (like WM_COMMNOTIFY), use the ON_MESSAGE() macro. The ON_MESSAGE macro must be used in a CWnd derived class. For example, it cannot be used in a CWinApp class or a CDocument class because neither of these classes is derived from CWnd.

MORE INFORMATION

Here's an example of how an application could use ON_MESSAGE:

  // inside the class declaration
  afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);

  ...

  #define WM_MYMESSAGE (WM_USER + 100)

  BEGIN_MESSAGE_MAP(CMyWnd, CMyParentWndClass)
     ON_MESSAGE(WM_MYMESSAGE, OnMyMessage)
  END_MESSAGE_MAP()

  LRESULT CMyWnd::OnMyMessage(WPARAM WParam, LPARAM LParam)
  {
     return (LRESULT)0;
  }

The function specified by the second parameter of the ON_MESSAGE macro must be a function that takes two parameters, a WPARAM and an LPARAM, and returns a LRESULT. For more information about the ON_MESSAGE() macro, see Technical Note #6 in the MFC Tech Notes Help file distributed with Microsoft Visual C++ version 1.0 and in the MFC Technical Notes included in the Visual C++ Books Online. Or search the Visual C++ Books Online on the keyword "ON_MESSAGE."


Additional reference words: kbinf 7.00 1.00 1.50 2.00 2.10 2.50 2.51 2.52
3.00 3.10 4.00
KBCategory: kbprg
KBSubcategory: MfcMisc
Keywords : MfcMisc kbprg
Technology : kbMfc
Version : 7.00 | 1.00 1.50 1.51 1.52 | 1
Platform : MS-DOS NT WINDOWS


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: October 10, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.