メッセージに応答するには、次の手順を実行する必要があります。
メッセージ | メッセージマクロ | メッセージハンドラ |
---|---|---|
WM_CREATE | ON_WM_CREATE() | afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct) |
WM_PAINT | ON_WM_PAINT() | afx_msg void OnPaint() |
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) ON_WM_CREATE() // メッセージマクロ ON_WM_PAINT() // END_MESSAGE_MAP()メッセージ マップ (MFC) | MSDN
BEGIN_MESSAGE_MAPのパラメータでは、メッセージマップがどのウィンドウに属するかを指定します。
BEGIN_MESSAGE_MAP( マップが属するクラス名, マップが属するクラスの基本クラス名 )BEGIN_MESSAGE_MAP | MSDN
メッセージハンドラのプロトタイプを、クラス宣言に記述します。
class CMainFrame : public CFrameWnd { CMainFrame(); protected: afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); // メッセージハンドラ afx_msg void OnPaint(); // DECLARE_MESSAGE_MAP() };
メッセージハンドラは、afx_msg型指定子を使用して宣言します。またメッセージマップを宣言するクラスは、末尾にDECLARE_MESSAGE_MAPマクロを記述する必要があります。
メッセージハンドラのプロトタイプに従い、メッセージハンドラ自体を定義します。
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { return 0; }
マップエントリ | 関数プロトタイプ |
---|---|
ON_WM_ACTIVATE() | afx_msg void OnActivate(UINT, CWnd*, BOOL); |
ON_WM_ACTIVATEAPP() | afx_msg void OnActivateApp(BOOL, DWORD); |
ON_WM_APPCOMMAND() | afx_msg void OnAppCommand(CWnd*, UINT, UINT, UINT); |
ON_WM_ASKCBFORMATNAME() | afx_msg void OnAskCbFormatName(UINT, LPSTR); |
ON_WM_CANCELMODE() | afx_msg void OnCancelMode(); |
ON_WM_CAPTURECHANGED() | afx_msg void OnCaptureChanged(CWnd*); |
ON_WM_CHANGECBCHAIN() | afx_msg void OnChangeCbChain(HWND, HWND); |
ON_WM_CHAR() | afx_msg void OnChar(UINT, UINT, UINT); |
ON_WM_CHARTOITEM() | afx_msg int OnCharToItem(UINT, CWnd*, UINT); |
ON_WM_CHILDACTIVATE() | afx_msg void OnChildActivate(); |
ON_WM_CLIPBOARDUPDATE() | afx_msg void OnClipboardUpdate(); |
ON_WM_CLOSE() | afx_msg void OnClose(); |
ON_WM_COMPACTING() | afx_msg void OnCompacting(UINT); |
ON_WM_COMPAREITEM() | afx_msg int OnCompareItem(LPCOMPAREITEMSTRUCT); |
ON_WM_CONTEXTMENU() | afx_msg void OnContextMenu(CWnd*, CPoint); |
ON_WM_COPYDATA() | afx_msg BOOL OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct); |
ON_WM_CREATE() | afx_msg int OnCreate(LPCREATESTRUCT); |
ON_WM_CTLCOLOR() | afx_msg HBRUSH OnCtlColor(CDC*, CWnd*, UINT); |
ON_WM_DEADCHAR() | afx_msg void OnDeadChar(UINT, UINT, UINT); |
ON_WM_DELETEITEM() | afx_msg void OnDeleteItem(LPDELETEITEMSTRUCT); |
ON_WM_DESTROY() | afx_msg void OnDestroy(); |
ON_WM_DESTROYCLIPBOARD() | afx_msg void OnDestroyClipboard(); |
ON_WM_DEVICECHANGE() | afx_msg void OnDeviceChange(UINT, DWORD); |
ON_WM_DEVMODECHANGE() | afx_msg void OnDevModeChange(LPSTR); |
ON_WM_DRAWCLIPBOARD() | afx_msg void OnDrawClipboard(); |
ON_WM_DRAWITEM() | afx_msg void OnDrawItem(LPDRAWITEMSTRUCT); |
ON_WM_DROPFILES() | afx_msg void OnDropFiles(HDROP); |
ON_WM_DWMCOLORIZATIONCOLORCHANGED() | afx_msg void OnColorizationColorChanged(DWORD, BOOL); |
ON_WM_DWMCOMPOSITIONCHANGED() | afx_msg void OnCompositionChanged(); |
ON_WM_DWMNCRENDERINGCHANGED() | afx_msg void OnNcRenderingChanged(BOOL); |
ON_WM_DWMWINDOWMAXIMIZEDCHANGE() | afx_msg void OnWindowMaximizedChanged(BOOL); |
ON_WM_ENABLE() | afx_msg void OnEnable(BOOL); |
ON_WM_ENDSESSION() | afx_msg void OnEndSession(BOOL); |
ON_WM_ENTERIDLE() | afx_msg void OnEnterIdle(UINT, CWnd*); |
ON_WM_ENTERSIZEMOVE() | afx_msg void OnEnterSizeMove(); |
ON_WM_ERASEBKGND() | afx_msg BOOL OnEraseBkgnd(CDC*); |
ON_WM_EXITSIZEMOVE() | afx_msg void OnExitSizeMove(); |
ON_WM_FONTCHANGE() | afx_msg void OnFontChange(); |
ON_WM_GETDLGCODE() | afx_msg UINT OnGetDlgCode(); |
ON_WM_GETMINMAXINFO() | afx_msg void OnGetMinMaxInfo(LPPOINT); |
ON_WM_HELPINFO() | afx_msg BOOL OnHelpInfo(HELPINFO*); |
ON_WM_HOTKEY() | afx_msg void OnHotKey(UINT, UINT, UINT); |
ON_WM_HSCROLL() | afx_msg void OnHScroll(UINT, UINT, CWnd*); |
ON_WM_HSCROLLCLIPBOARD() | afx_msg void OnHScrollClipboard(CWnd*, UINT, UINT); |
ON_WM_ICONERASEBKGND() | afx_msg void OnIconEraseBkgnd(CDC*); |
ON_WM_INITMENU() | afx_msg void OnInitMenu(CMenu*); |
ON_WM_INITMENUPOPUP() | afx_msg void OnInitMenuPopup(CMenu*, UINT, BOOL); |
ON_WM_INPUT() | afx_msg void OnRawInput(UINT, HRAWINPUT); |
ON_WM_INPUT_DEVICE_CHANGE() | afx_msg void OnInputDeviceChange(unsigned short); |
ON_WM_INPUTLANGCHANGE() | afx_msg void OnInputLangChange(BYTE, UINT); |
ON_WM_INPUTLANGCHANGEREQUEST() | afx_msg void OnInputLangChangeRequest(UINT, HKL); |
ON_WM_KEYDOWN() | afx_msg void OnKeyDown(UINT, UINT, UINT); |
ON_WM_KEYUP() | afx_msg void OnKeyUp(UINT, UINT, UINT); |
ON_WM_KILLFOCUS() | afx_msg void OnKillFocus(CWnd*); |
ON_WM_LBUTTONDBLCLK() | afx_msg void OnLButtonDblClk(UINT, CPoint); |
ON_WM_LBUTTONDOWN() | afx_msg void OnLButtonDown(UINT, CPoint); |
ON_WM_LBUTTONUP() | afx_msg void OnLButtonUp(UINT, CPoint); |
ON_WM_MBUTTONDBLCLK() | afx_msg void OnMButtonDblClk(UINT, CPoint); |
ON_WM_MBUTTONDOWN() | afx_msg void OnMButtonDown(UINT, CPoint); |
ON_WM_MBUTTONUP() | afx_msg void OnMButtonUp(UINT, CPoint); |
ON_WM_MDIACTIVATE() | afx_msg void OnMDIActivate(BOOL, CWnd*, CWnd*); |
ON_WM_MEASUREITEM() | afx_msg void OnMeasureItem(LPMEASUREITEMSTRUCT); |
ON_WM_MENUCHAR() | afx_msg LONG OnMenuChar(UINT, UINT, CMenu*); |
ON_WM_MENUDRAG() | afx_msg UINT OnMenuDrag(UINT, CMenu*); |
ON_WM_MENUGETOBJECT() | afx_msg UINT OnMenuGetObject(MENUGETOBJECTINFO*); |
ON_WM_MENURBUTTONUP() | afx_msg void OnMenuRButtonUp(UINT, CMenu*); |
ON_WM_MENUSELECT() | afx_msg void OnMenuSelect(UINT, UINT, HMENU); |
ON_WM_MOUSEACTIVATE() | afx_msg int OnMouseActivate( CWnd*, UINT, UINT ); |
ON_WM_MOUSEHOVER() | afx_msg void OnMouseHover(UINT, CPoint); |
ON_WM_MOUSEHWHEEL() | afx_msg void OnMouseHWheel(UINT, short, CPoint); |
ON_WM_MOUSELEAVE() | afx_msg void OnMouseLeave(); |
ON_WM_MOUSEMOVE() | afx_msg void OnMouseMove( UINT, CPoint); |
ON_WM_MOUSEWHEEL() | afx_msg BOOL OnMouseWheel(UINT, short, CPoint); |
ON_WM_MOVE() | afx_msg void OnMove(int, int); |
ON_WM_MOVING() | afx_msg void OnMoving(UINT, LPRECT); |
ON_WM_NCACTIVATE() | afx_msg BOOL OnNcActivate(BOOL); |
ON_WM_NCCALCSIZE() | afx_msg void OnNcCalcSize(BOOL, NCCALCSIZE_PARAMS FAR*); |
ON_WM_NCCREATE() | afx_msg BOOL OnNcCreate(LPCREATESTRUCT); |
ON_WM_NCDESTROY() | afx_msg void OnNcDestroy(); |
ON_WM_NCHITTEST() | afx_msg LRESULT OnNcHitTest(CPoint); |
ON_WM_NCLBUTTONDBLCLK() | afx_msg void OnNcLButtonDblClk(UINT, CPoint); |
ON_WM_NCLBUTTONDOWN() | afx_msg void OnNcLButtonDown(UINT, CPoint); |
ON_WM_NCLBUTTONUP() | afx_msg void OnNcLButtonUp(UINT, CPoint); |
ON_WM_NCMBUTTONDBLCLK() | afx_msg void OnNcMButtonDblClk(UINT, CPoint); |
ON_WM_NCMBUTTONDOWN() | afx_msg void OnNcMButtonDown(UINT, CPoint); |
ON_WM_NCMBUTTONUP() | afx_msg void OnNcMButtonUp(UINT, CPoint); |
ON_WM_NCMOUSEHOVER() | afx_msg void OnNcMouseHover(UINT, CPoint); |
ON_WM_NCMOUSELEAVE() | afx_msg void OnNcMouseLeave(); |
ON_WM_NCMOUSEMOVE() | afx_msg void OnNcMouseMove(UINT, CPoint); |
ON_WM_NCPAINT() | afx_msg void OnNcPaint(); |
ON_WM_NCRBUTTONDBLCLK() | afx_msg void OnNcRButtonDblClk(UINT, CPoint); |
ON_WM_NCRBUTTONDOWN() | afx_msg void OnNcRButtonDown(UINT, CPoint); |
ON_WM_NCRBUTTONUP() | afx_msg void OnNcRButtonUp(UINT, CPoint); |
ON_WM_NCXBUTTONDBLCLK() | void OnNcXButtonDblClk(short, UINT, CPoint); |
ON_WM_NCXBUTTONDOWN() | afx_msg void OnNcXButtonDown(short, UINT, CPoint); |
ON_WM_NCXBUTTONUP() | afx_msg void OnNcXButtonUp(short, UINT, CPoint); |
ON_WM_NEXTMENU() | afx_msg void OnNextMenu(UINT, LPMDINEXTMENU); |
ON_WM_NOTIFYFORMAT() | afx_msg UINT OnNotifyFormat(CWnd*, UINT); |
ON_WM_PAINT() | afx_msg void OnPaint(); |
ON_WM_PAINTCLIPBOARD() | afx_msg void OnPaintClipboard( CWnd*, HANDLE ); |
ON_WM_PALETTECHANGED() | afx_msg void OnPaletteChanged( CWnd* ); |
ON_WM_PALETTEISCHANGING() | afx_msg void OnPaletteIsChanging( CWnd* ); |
ON_WM_PARENTNOTIFY() | afx_msg void OnParentNotify( UINT, LONG ); |
ON_WM_POWERBROADCAST() | afx_msg UINT OnPowerBroadcast( UINT, UINT ); |
ON_WM_QUERYDRAGICON() | afx_msg HCURSOR OnQueryDragIcon()(); |
ON_WM_QUERYENDSESSION() | afx_msg BOOL OnQueryEndSession()(); |
ON_WM_QUERYNEWPALETTE() | afx_msg BOOL OnQueryNewPalette()(); |
ON_WM_QUERYOPEN() | afx_msg BOOL OnQueryOpen()(); |
ON_WM_RBUTTONDBLCLK() | afx_msg void OnRButtonDblClk( UINT, CPoint ); |
ON_WM_RBUTTONDOWN() | afx_msg void OnRButtonDown( UINT, CPoint ); |
ON_WM_RBUTTONUP() | afx_msg void OnRButtonUp( UINT, CPoint ); |
ON_WM_RENDERALLFORMATS() | afx_msg void OnRenderAllFormats(); |
ON_WM_RENDERFORMAT() | afx_msg void OnRenderFormat( UINT ); |
ON_WM_SETCURSOR( ) | afx_msg BOOL OnSetCursor( CWnd*, UINT, UINT ); |
ON_WM_SETFOCUS( ) | afx_msg void OnSetFocus( CWnd* ); |
ON_WM_SETTINGCHANGE( ) | afx_msg void OnSettingChange( UINT uFlags, LPCTSTR lpszSection ); |
ON_WM_SHOWWINDOW( ) | afx_msg void OnShowWindow( BOOL, UINT ); |
ON_WM_SIZE( ) | afx_msg void OnSize( UINT, int, int ); |
ON_WM_SIZECLIPBOARD( ) | afx_msg void OnSizeClipboard( CWnd*, HANDLE ); |
ON_WM_SIZING( ) | afx_msg void OnSizing( UINT, LPRECT ); |
ON_WM_SPOOLERSTATUS( ) | afx_msg void OnSpoolerStatus( UINT, UINT ); |
ON_WM_STYLECHANGED( ) | afx_msg void OnStyleChanged( int, LPSTYLESTRUCT ); |
ON_WM_STYLECHANGING( ) | afx_msg void OnStyleChanging( int, LPSTYLESTRUCT ); |
ON_WM_SYSCHAR( ) | afx_msg void OnSysChar( UINT, UINT, UINT ); |
ON_WM_SYSCOLORCHANGE( ) | afx_msg void OnSysColorChange( ); |
ON_WM_SYSCOMMAND( ) | afx_msg void OnSysCommand( UINT, LONG ); |
ON_WM_SYSDEADCHAR( ) | afx_msg void OnSysDeadChar( UINT, UINT, UINT ); |
ON_WM_SYSKEYDOWN( ) | afx_msg void OnSysKeyDown( UINT, UINT, UINT ); |
ON_WM_SYSKEYUP( ) | afx_msg void OnSysKeyUp( UINT, UINT, UINT ); |
ON_WM_TCARD() | afx_msg void OnTCard( UINT, DWORD ); |
ON_WM_TIMECHANGE() | afx_msg void OnTimeChange( ); |
ON_WM_TIMER() | afx_msg void OnTimer( UINT_PTR ); |
ON_WM_UNICHAR() | afx_msg void OnUniChar( UINT, UINT, UINT ); |
ON_WM_UNINITMENUPOPUP() | afx_msg void OnUnInitMenuPopup( CMenu*, UINT ); |
ON_WM_USERCHANGED() | afx_msg void OnUserChanged(); |
ON_WM_VKEYTOITEM() | afx_msg int OnVKeyToItem( UINT, CWnd*, UINT ); |
ON_WM_VSCROLL() | afx_msg void OnVScroll( UINT, UINT, CWnd* ); |
ON_WM_VSCROLLCLIPBOARD() | afx_msg void OnVScrollClipboard( CWnd*, UINT, UINT ); |
ON_WM_WINDOWPOSCHANGED() | afx_msg void OnWindowPosChanged( WINDOWPOS*); |
ON_WM_WINDOWPOSCHANGING() | afx_msg void OnWindowPosChanging( WINDOWPOS*); |
ON_WM_WININICHANGE() | afx_msg void OnWinIniChange( LPSTR ); |
ON_WM_WTSSESSION_CHANGE() | afx_msg void OnSessionChange( UINT, UINT ); |
ON_WM_XBUTTONDBLCLK() | afx_msg void OnXButtonDblClk( UINT, UINT, CPoint ); |
ON_WM_XBUTTONDOWN() | afx_msg void OnXButtonDown( UINT, UINT, CPoint ); |
ON_WM_XBUTTONUP() | afx_msg void OnXButtonUp( UINT, UINT, CPoint ); |