home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / C++-7 / DISK10 / MFC / INCLUDE / AFXMSG.H$ / afxmsg
Encoding:
Text File  |  1992-03-16  |  22.0 KB  |  512 lines

  1. // Microsoft Foundation Classes C++ library. 
  2. // Copyright (C) 1992 Microsoft Corporation, 
  3. // All rights reserved. 
  4.  
  5. // This source code is only intended as a supplement to the 
  6. // Microsoft Foundation Classes Reference and Microsoft 
  7. // QuickHelp documentation provided with the library. 
  8. // See these sources for detailed information regarding the 
  9. // Microsoft Foundation Classes product. 
  10.  
  11. // Do not include this file directly (included by AFXWIN.H)
  12.  
  13. /////////////////////////////////////////////////////////////////////////////
  14.  
  15. // Entries in a message map (a 'CMessageEntry') table can be of four formats
  16. // 1) control notification message (i.e. in response to WM_COMMAND)
  17. //      nNotifyCode, nControlID, signature type, parameterless member function
  18. //      (eg: LBN_SELCHANGE, IDC_LISTBOX, AfxSig_vv, ... )
  19. // 2) menu/accelerator notification message (i.e. special case of first format)
  20. //      0, nID, signature type, parameterless member function
  21. //      (eg: 0, IDM_FILESAVE, AfxSig_vv, ... )
  22. // 3) constant windows message
  23. //      nMessage, 0, signature type, member function
  24. //      (eg: WM_PAINT, 0, ...)
  25. // 4) variable windows message (using RegisterWindowMessage)
  26. //      0xC000, 0, &nMessage, special member function
  27.  
  28. // The end of the message map is marked with a special value
  29. //      0, 0, AfxSig_end, 0
  30.  
  31. /////////////////////////////////////////////////////////////////////////////
  32.  
  33. enum AfxSig
  34. {
  35.     AfxSig_end = 0,     // [marks end of message map]
  36.  
  37.     AfxSig_bD,      // BOOL (CDC *)
  38.     AfxSig_bb,      // BOOL (BOOL)
  39.     AfxSig_bWww,    // BOOL (CWnd*, UINT, UINT)
  40.     AfxSig_hDWw,    // HBRUSH (CDC *, CWnd*, UINT)
  41.     AfxSig_iwWw,    // int (UINT, CWnd*, UINT)
  42.     AfxSig_iWww,    // int (CWnd*, UINT, UINT)
  43.     AfxSig_is,      // int (LPSTR)
  44.     AfxSig_lwl,     // LONG (UINT, LONG)
  45.     AfxSig_lwwM,    // LONG (UINT, UINT, CMenu *)
  46.     AfxSig_vv,      // void (void)
  47.     AfxSig_vw,      // void (UINT)
  48.     AfxSig_vww,     // void (UINT, UINT)
  49.     AfxSig_vvii,    // void (int, int) // wParam is ignored
  50.     AfxSig_vwww,    // void (UINT, UINT, UINT)
  51.     AfxSig_vwii,    // void (UINT, int, int)
  52.     AfxSig_vwl,     // void (UINT, LONG)
  53.     AfxSig_vbWW,    // void (BOOL, CWnd*, CWnd*)
  54.     AfxSig_vD,      // void (CDC *)
  55.     AfxSig_vM,      // void (CMenu *)
  56.     AfxSig_vMwb,    // void (CMenu *, UINT, BOOL)
  57.     AfxSig_vW,      // void (CWnd*)
  58.     AfxSig_vWww,    // void (CWnd*, UINT, UINT)
  59.     AfxSig_vWh,     // void (CWnd*, HANDLE)
  60.     AfxSig_vwW,     // void (UINT, CWnd*)
  61.     AfxSig_vwWb,    // void (UINT, CWnd*, BOOL)
  62.     AfxSig_vwwW,    // void (UINT, UINT, CWnd*)
  63.     AfxSig_vs,      // void (LPSTR)
  64.     AfxSig_wp,      // UINT (CPoint)
  65.     AfxSig_wv,      // UINT (void)
  66.     AfxSig_vPOS,    // void (WINDOWPOS FAR*)
  67.     AfxSig_vCALC,   // void (NCCALCSIZE_PARAMS FAR*)
  68.     AfxSig_bh,      // BOOL (HANDLE)
  69.  
  70.     // Other aliases (based on implementation)
  71.     AfxSig_bv = AfxSig_wv,      // BOOL (void)
  72.     AfxSig_hv = AfxSig_wv,      // HANDLE (void)
  73.     AfxSig_vb = AfxSig_vw,      // void (BOOL)
  74.     AfxSig_vwp = AfxSig_vwl,    // void (UINT, CPoint)
  75.     AfxSig_vbh = AfxSig_vww,    // void (BOOL, HANDLE)
  76.     AfxSig_vbw = AfxSig_vww,    // void (BOOL, UINT)
  77.     AfxSig_vhh = AfxSig_vww,    // void (HANDLE, HANDLE)
  78. };
  79.  
  80. /////////////////////////////////////////////////////////////////////////////
  81. // Message map tables for Windows messages
  82.  
  83. #define ON_WM_CREATE() \
  84.     { WM_CREATE, 0, AfxSig_is, \
  85.         (AFX_PMSG)(int (AFX_MSG_CALL CWnd::*)(LPCREATESTRUCT))OnCreate },
  86. #define ON_WM_DESTROY() \
  87.     { WM_DESTROY, 0, AfxSig_vv, \
  88.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))OnDestroy },
  89. #define ON_WM_MOVE() \
  90.     { WM_MOVE, 0, AfxSig_vvii, \
  91.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(int, int))OnMove },
  92. #define ON_WM_SIZE() \
  93.     { WM_SIZE, 0, AfxSig_vwii, \
  94.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, int, int))OnSize },
  95. #define ON_WM_ACTIVATE() \
  96.     { WM_ACTIVATE, 0, AfxSig_vwWb, \
  97.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, CWnd*, BOOL))OnActivate },
  98. #define ON_WM_SETFOCUS() \
  99.     { WM_SETFOCUS, 0, AfxSig_vW, \
  100.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(CWnd*))OnSetFocus },
  101. #define ON_WM_KILLFOCUS() \
  102.     { WM_KILLFOCUS, 0, AfxSig_vW, \
  103.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(CWnd*))OnKillFocus },
  104. #define ON_WM_ENABLE() \
  105.     { WM_ENABLE, 0, AfxSig_vb, \
  106.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(BOOL))OnEnable },
  107. #define ON_WM_PAINT() \
  108.     { WM_PAINT, 0, AfxSig_vv, \
  109.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))OnPaint },
  110. #define ON_WM_CLOSE() \
  111.     { WM_CLOSE, 0, AfxSig_vv, \
  112.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))OnClose },
  113. #define ON_WM_QUERYENDSESSION() \
  114.     { WM_QUERYENDSESSION, 0, AfxSig_bv, \
  115.         (AFX_PMSG)(BOOL (AFX_MSG_CALL CWnd::*)(void))OnQueryEndSession },
  116. #define ON_WM_QUERYOPEN() \
  117.     { WM_QUERYOPEN, 0, AfxSig_bv, \
  118.         (AFX_PMSG)(BOOL (AFX_MSG_CALL CWnd::*)(void))OnQueryOpen },
  119. #define ON_WM_ERASEBKGND() \
  120.     { WM_ERASEBKGND, 0, AfxSig_bD, \
  121.         (AFX_PMSG)(BOOL (AFX_MSG_CALL CWnd::*)(CDC *))OnEraseBkgnd },
  122. #define ON_WM_SYSCOLORCHANGE() \
  123.     { WM_SYSCOLORCHANGE, 0, AfxSig_vv, \
  124.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))OnSysColorChange },
  125. #define ON_WM_ENDSESSION() \
  126.     { WM_ENDSESSION, 0, AfxSig_vb, \
  127.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(BOOL))OnEndSession },
  128. #define ON_WM_SHOWWINDOW() \
  129.     { WM_SHOWWINDOW, 0, AfxSig_vbw, \
  130.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(BOOL, UINT))OnShowWindow },
  131. #define ON_WM_CTLCOLOR() \
  132.     { WM_CTLCOLOR, 0, AfxSig_hDWw, \
  133.         (AFX_PMSG)(HBRUSH (AFX_MSG_CALL CWnd::*)(CDC *, CWnd*, UINT))OnCtlColor },
  134. #define ON_WM_WININICHANGE() \
  135.     { WM_WININICHANGE, 0, AfxSig_vs, \
  136.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(LPSTR))OnWinIniChange },
  137. #define ON_WM_DEVMODECHANGE() \
  138.     { WM_DEVMODECHANGE, 0, AfxSig_vs, \
  139.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(LPSTR))OnDevModeChange },
  140. #define ON_WM_ACTIVATEAPP() \
  141.     { WM_ACTIVATEAPP, 0, AfxSig_vbh, \
  142.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(BOOL, HANDLE))OnActivateApp },
  143. #define ON_WM_FONTCHANGE() \
  144.     { WM_FONTCHANGE, 0, AfxSig_vv, \
  145.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))OnFontChange },
  146. #define ON_WM_TIMECHANGE() \
  147.     { WM_TIMECHANGE, 0, AfxSig_vv, \
  148.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))OnTimeChange },
  149. #define ON_WM_CANCELMODE() \
  150.     { WM_CANCELMODE, 0, AfxSig_vv, \
  151.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))OnCancelMode },
  152. #define ON_WM_SETCURSOR() \
  153.     { WM_SETCURSOR, 0, AfxSig_bWww, \
  154.         (AFX_PMSG)(BOOL (AFX_MSG_CALL CWnd::*)(CWnd*, UINT, UINT))OnSetCursor },
  155. #define ON_WM_MOUSEACTIVATE() \
  156.     { WM_MOUSEACTIVATE, 0, AfxSig_iWww, \
  157.         (AFX_PMSG)(int (AFX_MSG_CALL CWnd::*)(CWnd*, UINT, UINT))OnMouseActivate },
  158. #define ON_WM_CHILDACTIVATE() \
  159.     { WM_CHILDACTIVATE, 0, AfxSig_vv, \
  160.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))OnChildActivate },
  161. #define ON_WM_GETMINMAXINFO() \
  162.     { WM_GETMINMAXINFO, 0, AfxSig_vs, \
  163.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(LPPOINT))OnGetMinMaxInfo },
  164. #define ON_WM_ICONERASEBKGND() \
  165.     { WM_ICONERASEBKGND, 0, AfxSig_vD, \
  166.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(CDC *))OnIconEraseBkgnd },
  167. #define ON_WM_SPOOLERSTATUS() \
  168.     { WM_SPOOLERSTATUS, 0, AfxSig_vww, \
  169.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT))OnSpoolerStatus },
  170. #define ON_WM_DRAWITEM() \
  171.     { WM_DRAWITEM, 0, AfxSig_vs, \
  172.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(LPDRAWITEMSTRUCT))OnDrawItem },
  173. #define ON_WM_MEASUREITEM() \
  174.     { WM_MEASUREITEM, 0, AfxSig_vs, \
  175.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(LPMEASUREITEMSTRUCT))OnMeasureItem },
  176. #define ON_WM_DELETEITEM() \
  177.     { WM_DELETEITEM, 0, AfxSig_vs, \
  178.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(LPDELETEITEMSTRUCT))OnDeleteItem },
  179. #define ON_WM_VKEYTOITEM() \
  180.     { WM_VKEYTOITEM, 0, AfxSig_iwWw, \
  181.         (AFX_PMSG)(int (AFX_MSG_CALL CWnd::*)(UINT, CListBox*, UINT))OnVKeyToItem },
  182. #define ON_WM_CHARTOITEM() \
  183.     { WM_CHARTOITEM, 0, AfxSig_iwWw, \
  184.         (AFX_PMSG)(int (AFX_MSG_CALL CWnd::*)(UINT, CListBox*, UINT))OnCharToItem },
  185. #define ON_WM_QUERYDRAGICON() \
  186.     { WM_QUERYDRAGICON, 0, AfxSig_hv, \
  187.         (AFX_PMSG)(HANDLE (AFX_MSG_CALL CWnd::*)())OnQueryDragIcon },
  188. #define ON_WM_COMPAREITEM() \
  189.     { WM_COMPAREITEM, 0, AfxSig_is, \
  190.         (AFX_PMSG)(int (AFX_MSG_CALL CWnd::*)(LPCOMPAREITEMSTRUCT))OnCompareItem },
  191. #define ON_WM_COMPACTING() \
  192.     { WM_COMPACTING, 0, AfxSig_vw, \
  193.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT))OnCompacting },
  194. #define ON_WM_NCCREATE() \
  195.     { WM_NCCREATE, 0, AfxSig_is, \
  196.         (AFX_PMSG)(BOOL (AFX_MSG_CALL CWnd::*)(LPCREATESTRUCT))OnNcCreate },
  197. #define ON_WM_NCDESTROY() \
  198.     { WM_NCDESTROY, 0, AfxSig_vv, \
  199.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))OnNcDestroy },
  200. #define ON_WM_NCCALCSIZE() \
  201.     { WM_NCCALCSIZE, 0, AfxSig_vCALC, \
  202.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(NCCALCSIZE_PARAMS FAR*))OnNcCalcSize },
  203. #define ON_WM_NCHITTEST() \
  204.     { WM_NCHITTEST, 0, AfxSig_wp, \
  205.         (AFX_PMSG)(UINT (AFX_MSG_CALL CWnd::*)(CPoint))OnNcHitTest },
  206. #define ON_WM_NCPAINT() \
  207.     { WM_NCPAINT, 0, AfxSig_vv, \
  208.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))OnNcPaint },
  209. #define ON_WM_NCACTIVATE() \
  210.     { WM_NCACTIVATE, 0, AfxSig_bb, \
  211.         (AFX_PMSG)(BOOL (AFX_MSG_CALL CWnd::*)(BOOL))OnNcActivate },
  212. #define ON_WM_GETDLGCODE() \
  213.     { WM_GETDLGCODE, 0, AfxSig_wv, \
  214.         (AFX_PMSG)(UINT (AFX_MSG_CALL CWnd::*)(void))OnGetDlgCode },
  215. #define ON_WM_NCMOUSEMOVE() \
  216.     { WM_NCMOUSEMOVE, 0, AfxSig_vwp, \
  217.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcMouseMove },
  218. #define ON_WM_NCLBUTTONDOWN() \
  219.     { WM_NCLBUTTONDOWN, 0, AfxSig_vwp, \
  220.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcLButtonDown },
  221. #define ON_WM_NCLBUTTONUP() \
  222.     { WM_NCLBUTTONUP, 0, AfxSig_vwp, \
  223.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcLButtonUp },
  224. #define ON_WM_NCLBUTTONDBLCLK() \
  225.     { WM_NCLBUTTONDBLCLK, 0, AfxSig_vwp, \
  226.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcLButtonDblClk },
  227. #define ON_WM_NCRBUTTONDOWN() \
  228.     { WM_NCRBUTTONDOWN, 0, AfxSig_vwp, \
  229.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcRButtonDown },
  230. #define ON_WM_NCRBUTTONUP() \
  231.     { WM_NCRBUTTONUP, 0, AfxSig_vwp, \
  232.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcRButtonUp },
  233. #define ON_WM_NCRBUTTONDBLCLK() \
  234.     { WM_NCRBUTTONDBLCLK, 0, AfxSig_vwp, \
  235.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcRButtonDblClk },
  236. #define ON_WM_NCMBUTTONDOWN() \
  237.     { WM_NCMBUTTONDOWN, 0, AfxSig_vwp, \
  238.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcMButtonDown },
  239. #define ON_WM_NCMBUTTONUP() \
  240.     { WM_NCMBUTTONUP, 0, AfxSig_vwp, \
  241.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcMButtonUp },
  242. #define ON_WM_NCMBUTTONDBLCLK() \
  243.     { WM_NCMBUTTONDBLCLK, 0, AfxSig_vwp, \
  244.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcMButtonDblClk },
  245. #define ON_WM_KEYDOWN() \
  246.     { WM_KEYDOWN, 0, AfxSig_vwww, \
  247.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))OnKeyDown },
  248. #define ON_WM_KEYUP() \
  249.     { WM_KEYUP, 0, AfxSig_vwww, \
  250.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))OnKeyUp },
  251. #define ON_WM_CHAR() \
  252.     { WM_CHAR, 0, AfxSig_vwww, \
  253.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))OnChar },
  254. #define ON_WM_DEADCHAR() \
  255.     { WM_DEADCHAR, 0, AfxSig_vwww, \
  256.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))OnDeadChar },
  257. #define ON_WM_SYSKEYDOWN() \
  258.     { WM_SYSKEYDOWN, 0, AfxSig_vwww, \
  259.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))OnSysKeyDown },
  260. #define ON_WM_SYSKEYUP() \
  261.     { WM_SYSKEYUP, 0, AfxSig_vwww, \
  262.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))OnSysKeyUp },
  263. #define ON_WM_SYSCHAR() \
  264.     { WM_SYSCHAR, 0, AfxSig_vwww, \
  265.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))OnSysChar },
  266. #define ON_WM_SYSDEADCHAR() \
  267.     { WM_SYSDEADCHAR, 0, AfxSig_vwww, \
  268.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))OnSysDeadChar },
  269. #define ON_WM_SYSCOMMAND() \
  270.     { WM_SYSCOMMAND, 0, AfxSig_vwl, \
  271.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, LONG))OnSysCommand },
  272. #define ON_WM_TIMER() \
  273.     { WM_TIMER, 0, AfxSig_vw, \
  274.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT))OnTimer },
  275. #define ON_WM_HSCROLL() \
  276.     { WM_HSCROLL, 0, AfxSig_vwwW, \
  277.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, CScrollBar*))OnHScroll },
  278. #define ON_WM_VSCROLL() \
  279.     { WM_VSCROLL, 0, AfxSig_vwwW, \
  280.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, CScrollBar*))OnVScroll },
  281. #define ON_WM_INITMENU() \
  282.     { WM_INITMENU, 0, AfxSig_vM, \
  283.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(CMenu *))OnInitMenu },
  284. #define ON_WM_INITMENUPOPUP() \
  285.     { WM_INITMENUPOPUP, 0, AfxSig_vMwb, \
  286.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(CMenu *, UINT, BOOL))OnInitMenuPopup },
  287. #define ON_WM_MENUSELECT() \
  288.     { WM_MENUSELECT, 0, AfxSig_vwww, \
  289.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, HMENU))OnMenuSelect },
  290. #define ON_WM_MENUCHAR() \
  291.     { WM_MENUCHAR, 0, AfxSig_lwwM, \
  292.         (AFX_PMSG)(LONG (AFX_MSG_CALL CWnd::*)(UINT, UINT, CMenu *))OnMenuChar },
  293. #define ON_WM_ENTERIDLE() \
  294.     { WM_ENTERIDLE, 0, AfxSig_vwW, \
  295.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, CWnd*))OnEnterIdle },
  296. #define ON_WM_MOUSEMOVE() \
  297.     { WM_MOUSEMOVE, 0, AfxSig_vwp, \
  298.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnMouseMove },
  299. #define ON_WM_LBUTTONDOWN() \
  300.     { WM_LBUTTONDOWN, 0, AfxSig_vwp, \
  301.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnLButtonDown },
  302. #define ON_WM_LBUTTONUP() \
  303.     { WM_LBUTTONUP, 0, AfxSig_vwp, \
  304.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnLButtonUp },
  305. #define ON_WM_LBUTTONDBLCLK() \
  306.     { WM_LBUTTONDBLCLK, 0, AfxSig_vwp, \
  307.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnLButtonDblClk },
  308. #define ON_WM_RBUTTONDOWN() \
  309.     { WM_RBUTTONDOWN, 0, AfxSig_vwp, \
  310.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnRButtonDown },
  311. #define ON_WM_RBUTTONUP() \
  312.     { WM_RBUTTONUP, 0, AfxSig_vwp, \
  313.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnRButtonUp },
  314. #define ON_WM_RBUTTONDBLCLK() \
  315.     { WM_RBUTTONDBLCLK, 0, AfxSig_vwp, \
  316.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnRButtonDblClk },
  317. #define ON_WM_MBUTTONDOWN() \
  318.     { WM_MBUTTONDOWN, 0, AfxSig_vwp, \
  319.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnMButtonDown },
  320. #define ON_WM_MBUTTONUP() \
  321.     { WM_MBUTTONUP, 0, AfxSig_vwp, \
  322.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnMButtonUp },
  323. #define ON_WM_MBUTTONDBLCLK() \
  324.     { WM_MBUTTONDBLCLK, 0, AfxSig_vwp, \
  325.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnMButtonDblClk },
  326. #define ON_WM_PARENTNOTIFY() \
  327.     { WM_PARENTNOTIFY, 0, AfxSig_vwl, \
  328.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, LONG))OnParentNotify },
  329. #define ON_WM_MDIACTIVATE() \
  330.     { WM_MDIACTIVATE, 0, AfxSig_vbWW, \
  331.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(BOOL, CWnd*, CWnd*))OnMDIActivate },
  332. #define ON_WM_RENDERFORMAT() \
  333.     { WM_RENDERFORMAT, 0, AfxSig_vw, \
  334.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT))OnRenderFormat },
  335. #define ON_WM_RENDERALLFORMATS() \
  336.     { WM_RENDERALLFORMATS, 0, AfxSig_vv, \
  337.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))OnRenderAllFormats },
  338. #define ON_WM_DESTROYCLIPBOARD() \
  339.     { WM_DESTROYCLIPBOARD, 0, AfxSig_vv, \
  340.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))OnDestroyClipboard },
  341. #define ON_WM_DRAWCLIPBOARD() \
  342.     { WM_DRAWCLIPBOARD, 0, AfxSig_vv, \
  343.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))OnDrawClipboard },
  344. #define ON_WM_PAINTCLIPBOARD() \
  345.     { WM_PAINTCLIPBOARD, 0, AfxSig_vWh, \
  346.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(CWnd*, HANDLE))OnPaintClipboard },
  347. #define ON_WM_VSCROLLCLIPBOARD() \
  348.     { WM_VSCROLLCLIPBOARD, 0, AfxSig_vWww, \
  349.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(CWnd*, UINT, UINT))OnVScrollClipboard },
  350. #define ON_WM_SIZECLIPBOARD() \
  351.     { WM_SIZECLIPBOARD, 0, AfxSig_vWh, \
  352.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(CWnd*, HANDLE))OnSizeClipboard },
  353. #define ON_WM_ASKCBFORMATNAME() \
  354.     { WM_ASKCBFORMATNAME, 0, AfxSig_vwl, \
  355.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(UINT, LPSTR))OnAskCbFormatName },
  356. #define ON_WM_CHANGECBCHAIN() \
  357.     { WM_CHANGECBCHAIN, 0, AfxSig_vhh, \
  358.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(HWND, HWND))OnChangeCbChain },
  359. #define ON_WM_HSCROLLCLIPBOARD() \
  360.     { WM_HSCROLLCLIPBOARD, 0, AfxSig_vWww, \
  361.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(CWnd*, UINT, UINT))OnHScrollClipboard },
  362. #define ON_WM_QUERYNEWPALETTE() \
  363.     { WM_QUERYNEWPALETTE, 0, AfxSig_bv, \
  364.         (AFX_PMSG)(BOOL (AFX_MSG_CALL CWnd::*)(void))OnQueryNewPalette },
  365. #define ON_WM_PALETTECHANGED() \
  366.     { WM_PALETTECHANGED, 0, AfxSig_vW, \
  367.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(CWnd*))OnPaletteChanged },
  368.  
  369. #if (WINVER >= 0x030a)
  370. #define ON_WM_PALETTEISCHANGING() \
  371.     { WM_PALETTEISCHANGING, 0, AfxSig_vW, \
  372.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(CWnd*))OnPaletteIsChanging },
  373. #define ON_WM_DROPFILES() \
  374.     { WM_DROPFILES, 0, AfxSig_vh, \
  375.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(HANDLE))OnDropFiles },
  376. #define ON_WM_WINDOWPOSCHANGING() \
  377.     { WM_WINDOWPOSCHANGING, 0, AfxSig_vPOS, \
  378.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(LPWINDOWPOS))OnWindowPosChanging },
  379. #define ON_WM_WINDOWPOSCHANGED() \
  380.     { WM_WINDOWPOSCHANGED, 0, AfxSig_vPOS, \
  381.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(LPWINDOWPOS))OnWindowPosChanged },
  382. #endif /* WINVER >= 0x030a */
  383.  
  384. /////////////////////////////////////////////////////////////////////////////
  385. // Message map tables for Control Notification messages
  386.  
  387. /* Edit Control Notification Codes */
  388. #define ON_EN_SETFOCUS(id, memberFxn) \
  389.     { EN_SETFOCUS, id, AfxSig_vv, \
  390.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  391. #define ON_EN_KILLFOCUS(id, memberFxn) \
  392.     { EN_KILLFOCUS, id, AfxSig_vv, \
  393.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  394. #define ON_EN_CHANGE(id, memberFxn) \
  395.     { EN_CHANGE, id, AfxSig_vv, \
  396.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  397. #define ON_EN_UPDATE(id, memberFxn) \
  398.     { EN_UPDATE, id, AfxSig_vv, \
  399.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  400. #define ON_EN_ERRSPACE(id, memberFxn) \
  401.     { EN_ERRSPACE, id, AfxSig_vv, \
  402.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  403. #define ON_EN_MAXTEXT(id, memberFxn) \
  404.     { EN_MAXTEXT, id, AfxSig_vv, \
  405.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  406. #define ON_EN_HSCROLL(id, memberFxn) \
  407.     { EN_HSCROLL, id, AfxSig_vv, \
  408.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  409. #define ON_EN_VSCROLL(id, memberFxn) \
  410.     { EN_VSCROLL, id, AfxSig_vv, \
  411.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  412.  
  413. /* User Button Notification Codes */
  414. #define ON_BN_CLICKED(id, memberFxn) \
  415.     { BN_CLICKED, id, AfxSig_vv, \
  416.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  417. #define ON_BN_PAINT(id, memberFxn) \
  418.     { BN_PAINT, id, AfxSig_vv, \
  419.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  420. #define ON_BN_HILITE(id, memberFxn) \
  421.     { BN_HILITE, id, AfxSig_vv, \
  422.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  423. #define ON_BN_UNHILITE(id, memberFxn) \
  424.     { BN_UNHILITE, id, AfxSig_vv, \
  425.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  426. #define ON_BN_DISABLE(id, memberFxn) \
  427.     { BN_DISABLE, id, AfxSig_vv, \
  428.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  429. #define ON_BN_DOUBLECLICKED(id, memberFxn) \
  430.     { BN_DOUBLECLICKED, id, AfxSig_vv, \
  431.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  432.  
  433. /* Listbox Notification Codes */
  434. #define ON_LBN_ERRSPACE(id, memberFxn) \
  435.     { LBN_ERRSPACE, id, AfxSig_vv, \
  436.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  437. #define ON_LBN_SELCHANGE(id, memberFxn) \
  438.     { LBN_SELCHANGE, id, AfxSig_vv, \
  439.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  440. #define ON_LBN_DBLCLK(id, memberFxn) \
  441.     { LBN_DBLCLK, id, AfxSig_vv, \
  442.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  443. #define ON_LBN_SETFOCUS(id, memberFxn) \
  444.     { LBN_SETFOCUS, id, AfxSig_vv, \
  445.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  446. #define ON_LBN_KILLFOCUS(id, memberFxn) \
  447.     { LBN_KILLFOCUS, id, AfxSig_vv, \
  448.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  449.  
  450. /* Combo Box Notification Codes */
  451. #define ON_CBN_ERRSPACE(id, memberFxn) \
  452.     { CBN_ERRSPACE, id, AfxSig_vv, \
  453.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  454. #define ON_CBN_SELCHANGE(id, memberFxn) \
  455.     { CBN_SELCHANGE, id, AfxSig_vv, \
  456.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  457. #define ON_CBN_DBLCLK(id, memberFxn) \
  458.     { CBN_DBLCLK, id, AfxSig_vv, \
  459.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  460. #define ON_CBN_SETFOCUS(id, memberFxn) \
  461.     { CBN_SETFOCUS, id, AfxSig_vv, \
  462.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  463. #define ON_CBN_KILLFOCUS(id, memberFxn) \
  464.     { CBN_KILLFOCUS, id, AfxSig_vv, \
  465.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  466. #define ON_CBN_EDITCHANGE(id, memberFxn) \
  467.     { CBN_EDITCHANGE, id, AfxSig_vv, \
  468.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  469. #define ON_CBN_EDITUPDATE(id, memberFxn) \
  470.     { CBN_EDITUPDATE, id, AfxSig_vv, \
  471.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  472. #define ON_CBN_DROPDOWN(id, memberFxn) \
  473.     { CBN_DROPDOWN, id, AfxSig_vv, \
  474.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  475. #if (WINVER >= 0x030a)
  476. #define ON_CBN_CLOSEUP(id, memberFxn)  \
  477.     { CBN_CLOSEUP, id, AfxSig_vv, \
  478.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  479. #define ON_CBN_SELENDOK(id, memberFxn)  \
  480.     { CBN_SELENDOK, id, AfxSig_vv, \
  481.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  482. #define ON_CBN_SELENDCANCEL(id, memberFxn)  \
  483.     { CBN_SELENDCANCEL, id, AfxSig_vv, \
  484.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  485. #endif  /* WINVER >= 0x030a */
  486.  
  487. /////////////////////////////////////////////////////////////////////////////
  488. // User extensions for message map entries
  489.  
  490. // for Menu/Accelerator/Pushbutton commands
  491. #define ON_COMMAND(id, memberFxn) \
  492.     { 0, id, AfxSig_vv, \
  493.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  494.  
  495. // for general controls
  496. #define ON_CONTROL(wNotifyCode, id, memberFxn) \
  497.     { wNotifyCode, id, AfxSig_vv, \
  498.         (AFX_PMSG)(void (AFX_MSG_CALL CWnd::*)(void))memberFxn },
  499.  
  500. // for Windows messages
  501. #define ON_MESSAGE(message, memberFxn) \
  502.     { message, 0, AfxSig_lwl, \
  503.         (AFX_PMSG)(LONG (AFX_MSG_CALL CWnd::*)(UINT, LONG))memberFxn },
  504.  
  505. // for Registered Windows messages
  506. #define ON_REGISTERED_MESSAGE(nMessageVariable, memberFxn) \
  507.     { 0xC000, 0, (UINT)(UINT NEAR*)(&nMessageVariable), \
  508.         /*implied 'AfxSig_lwl'*/ \
  509.         (AFX_PMSG)(LONG (AFX_MSG_CALL CWnd::*)(UINT, LONG))memberFxn },
  510.  
  511. /////////////////////////////////////////////////////////////////////////////
  512.