windows消息检测函数

有的时候我们不知道windows在某一时刻发送了什么消息,即便用spy++可以探测到,但是感觉还不是那么的好,所以就下一个函数来动态的调试它吧,很好用但仅限user层


留点地方为以后增加内容


// OutMsg函数中的消息宏都是依据winuser.h而来的,基本上windows消息应该全了,可能还有没发现的不过这应该足够了
// 放在函数PeekMessage PreTranslateMessage等里边测试比较好
#include <afx.h>
#include <windows.h>		// Windows的头文件
void OutMsg( MSG &msg )
{
	CString str;
	switch (msg.message)
	{
	case WM_NULL:
		str.Format("0x%04X  WM_NULL\n",msg.message);
		break;
	case WM_CREATE:
		str.Format("0x%04X  WM_CREATE\n",msg.message);
		break;
	case WM_DESTROY:
		str.Format("0x%04X  WM_DESTROY\n",msg.message);
		break;
	case WM_MOVE:
		str.Format("0x%04X  WM_MOVE\n",msg.message);
		break;
	case WM_SIZE:
		str.Format("0x%04X  WM_SIZE\n",msg.message);
		break;
	case WM_ACTIVATE:
		str.Format("0x%04X  WM_ACTIVATE\n",msg.message);
		break;
	case WM_SETFOCUS:
		str.Format("0x%04X  WM_SETFOCUS\n",msg.message);
		break;
	case WM_KILLFOCUS:
		str.Format("0x%04X  WM_KILLFOCUS\n",msg.message);
		break;
	case WM_ENABLE:
		str.Format("0x%04X  WM_ENABLE\n",msg.message);
		break;
	case WM_SETREDRAW:
		str.Format("0x%04X  WM_SETREDRAW\n",msg.message);
		break;
	case WM_SETTEXT:
		str.Format("0x%04X  WM_SETTEXT\n",msg.message);
		break;
	case WM_GETTEXT:
		str.Format("0x%04X  WM_GETTEXT\n",msg.message);
		break;
	case WM_GETTEXTLENGTH:
		str.Format("0x%04X  WM_GETTEXTLENGTH\n",msg.message);
		break;
	case WM_PAINT:
		str.Format("0x%04X  WM_PAINT\n",msg.message);
		break;
	case WM_CLOSE:
		str.Format("0x%04X  WM_CLOSE\n",msg.message);
		break;
#ifndef _WIN32_WCE
	case WM_QUERYENDSESSION:
		str.Format("0x%04X  WM_QUERYENDSESSION\n",msg.message);
		break;
	case WM_QUERYOPEN:
		str.Format("0x%04X  WM_QUERYOPEN\n",msg.message);
		break;
	case WM_ENDSESSION:
		str.Format("0x%04X  WM_ENDSESSION\n",msg.message);
		break;
#endif
	case WM_QUIT:
		str.Format("0x%04X  WM_QUIT\n",msg.message);
		break;
	case WM_ERASEBKGND:
		str.Format("0x%04X  WM_ERASEBKGND\n",msg.message);
		break;
	case WM_SYSCOLORCHANGE:
		str.Format("0x%04X  WM_SYSCOLORCHANGE\n",msg.message);
		break;
	case WM_SHOWWINDOW:
		str.Format("0x%04X  WM_SHOWWINDOW\n",msg.message);
		break;
		// 	case WM_WININICHANGE:
		// 		str.Format("0x%04X  WM_WININICHANGE\n",msg.message);
		// 		break;
#if(WINVER >= 0x0400)
	case WM_SETTINGCHANGE: // #define WM_SETTINGCHANGE  WM_WININICHANGE
		str.Format("0x%04X  WM_SETTINGCHANGE==WM_WININICHANGE\n",msg.message);
		break;
#endif /* WINVER >= 0x0400 */
	case WM_DEVMODECHANGE:
		str.Format("0x%04X  WM_DEVMODECHANGE\n",msg.message);
		break;
	case WM_ACTIVATEAPP:
		str.Format("0x%04X  WM_ACTIVATEAPP\n",msg.message);
		break;
	case WM_FONTCHANGE:
		str.Format("0x%04X  WM_FONTCHANGE\n",msg.message);
		break;
	case WM_TIMECHANGE:
		str.Format("0x%04X  WM_TIMECHANGE\n",msg.message);
		break;
	case WM_CANCELMODE:
		str.Format("0x%04X  WM_CANCELMODE\n",msg.message);
		break;
	case WM_SETCURSOR:
		str.Format("0x%04X  WM_SETCURSOR\n",msg.message);
		break;
	case WM_MOUSEACTIVATE:
		str.Format("0x%04X  WM_MOUSEACTIVATE\n",msg.message);
		break;
	case WM_CHILDACTIVATE:
		str.Format("0x%04X  WM_CHILDACTIVATE\n",msg.message);
		break;
	case WM_QUEUESYNC:
		str.Format("0x%04X  WM_QUEUESYNC\n",msg.message);
		break;
	case WM_GETMINMAXINFO:
		str.Format("0x%04X  WM_GETMINMAXINFO\n",msg.message);
		break;
	case WM_PAINTICON:
		str.Format("0x%04X  WM_PAINTICON\n",msg.message);
		break;
	case WM_ICONERASEBKGND:
		str.Format("0x%04X  WM_ICONERASEBKGND\n",msg.message);
		break;
	case WM_NEXTDLGCTL:
		str.Format("0x%04X  WM_NEXTDLGCTL\n",msg.message);
		break;
	case WM_SPOOLERSTATUS:
		str.Format("0x%04X  WM_SPOOLERSTATUS\n",msg.message);
		break;
	case WM_DRAWITEM:
		str.Format("0x%04X  WM_DRAWITEM\n",msg.message);
		break;
	case WM_MEASUREITEM:
		str.Format("0x%04X  WM_MEASUREITEM\n",msg.message);
		break;
	case WM_DELETEITEM:
		str.Format("0x%04X  WM_DELETEITEM\n",msg.message);
		break;
	case WM_VKEYTOITEM:
		str.Format("0x%04X  WM_VKEYTOITEM\n",msg.message);
		break;
	case WM_CHARTOITEM:
		str.Format("0x%04X  WM_CHARTOITEM\n",msg.message);
		break;
	case WM_SETFONT:
		str.Format("0x%04X  WM_SETFONT\n",msg.message);
		break;
	case WM_GETFONT:
		str.Format("0x%04X  WM_GETFONT\n",msg.message);
		break;
	case WM_SETHOTKEY:
		str.Format("0x%04X  WM_SETHOTKEY\n",msg.message);
		break;
	case WM_GETHOTKEY:
		str.Format("0x%04X  WM_GETHOTKEY\n",msg.message);
		break;
	case WM_QUERYDRAGICON:
		str.Format("0x%04X  WM_QUERYDRAGICON\n",msg.message);
		break;
	case WM_COMPAREITEM:
		str.Format("0x%04X  WM_COMPAREITEM\n",msg.message);
		break;
#if(WINVER >= 0x0500)
#ifndef _WIN32_WCE
	case WM_GETOBJECT:
		str.Format("0x%04X  WM_GETOBJECT\n",msg.message);
		break;
#endif
#endif /* WINVER >= 0x0500 */
	case WM_COMPACTING:
		str.Format("0x%04X  WM_COMPACTING\n",msg.message);
		break;
	case WM_COMMNOTIFY:
		str.Format("0x%04X  WM_COMMNOTIFY\n",msg.message);
		break;
	case WM_WINDOWPOSCHANGING:
		str.Format("0x%04X  WM_WINDOWPOSCHANGING\n",msg.message);
		break;
	case WM_WINDOWPOSCHANGED:
		str.Format("0x%04X  WM_WINDOWPOSCHANGED\n",msg.message);
		break;
	case WM_POWER:
		str.Format("0x%04X  WM_POWER\n",msg.message);
		break;
	case WM_COPYDATA:
		str.Format("0x%04X  WM_COPYDATA\n",msg.message);
		break;
	case WM_CANCELJOURNAL:
		str.Format("0x%04X  WM_CANCELJOURNAL\n",msg.message);
		break;
#if(WINVER >= 0x0400)
	case WM_NOTIFY:
		str.Format("0x%04X  WM_NOTIFY\n",msg.message);
		break;
	case WM_INPUTLANGCHANGEREQUEST:
		str.Format("0x%04X  WM_INPUTLANGCHANGEREQUEST\n",msg.message);
		break;
	case WM_INPUTLANGCHANGE:
		str.Format("0x%04X  WM_INPUTLANGCHANGE\n",msg.message);
		break;
	case WM_TCARD:
		str.Format("0x%04X  WM_TCARD\n",msg.message);
		break;
	case WM_HELP:
		str.Format("0x%04X  WM_HELP\n",msg.message);
		break;
	case WM_USERCHANGED:
		str.Format("0x%04X  WM_USERCHANGED\n",msg.message);
		break;
	case WM_NOTIFYFORMAT:
		str.Format("0x%04X  WM_NOTIFYFORMAT\n",msg.message);
		break;
	case WM_CONTEXTMENU:
		str.Format("0x%04X  WM_CONTEXTMENU\n",msg.message);
		break;
	case WM_STYLECHANGING:
		str.Format("0x%04X  WM_STYLECHANGING\n",msg.message);
		break;
	case WM_STYLECHANGED:
		str.Format("0x%04X  WM_STYLECHANGED\n",msg.message);
		break;
	case WM_DISPLAYCHANGE:
		str.Format("0x%04X  WM_DISPLAYCHANGE\n",msg.message);
		break;
	case WM_GETICON:
		str.Format("0x%04X  WM_GETICON\n",msg.message);
		break;
	case WM_SETICON:
		str.Format("0x%04X  WM_SETICON\n",msg.message);
		break;
#endif /* WINVER >= 0x0400 */
	case WM_NCCREATE:
		str.Format("0x%04X  WM_NCCREATE\n",msg.message);
		break;
	case WM_NCDESTROY:
		str.Format("0x%04X  WM_NCDESTROY\n",msg.message);
		break;
	case WM_NCCALCSIZE:
		str.Format("0x%04X  WM_NCCALCSIZE\n",msg.message);
		break;
	case WM_NCHITTEST:
		str.Format("0x%04X  WM_NCHITTEST\n",msg.message);
		break;
	case WM_NCPAINT:
		str.Format("0x%04X  WM_NCPAINT\n",msg.message);
		break;
	case WM_NCACTIVATE:
		str.Format("0x%04X  WM_NCACTIVATE\n",msg.message);
		break;
	case WM_GETDLGCODE:
		str.Format("0x%04X  WM_GETDLGCODE\n",msg.message);
		break;
#ifndef _WIN32_WCE
	case WM_SYNCPAINT:
		str.Format("0x%04X  WM_SYNCPAINT\n",msg.message);
		break;
#endif
	case WM_NCMOUSEMOVE:
		str.Format("0x%04X  WM_NCMOUSEMOVE\n",msg.message);
		break;
	case WM_NCLBUTTONDOWN:
		str.Format("0x%04X  WM_NCLBUTTONDOWN\n",msg.message);
		break;
	case WM_NCLBUTTONUP:
		str.Format("0x%04X  WM_NCLBUTTONUP\n",msg.message);
		break;
	case WM_NCLBUTTONDBLCLK:
		str.Format("0x%04X  WM_NCLBUTTONDBLCLK\n",msg.message);
		break;
	case WM_NCRBUTTONDOWN:
		str.Format("0x%04X  WM_NCRBUTTONDOWN\n",msg.message);
		break;
	case WM_NCRBUTTONUP:
		str.Format("0x%04X  WM_NCRBUTTONUP\n",msg.message);
		break;
	case WM_NCRBUTTONDBLCLK:
		str.Format("0x%04X  WM_NCRBUTTONDBLCLK\n",msg.message);
		break;
	case WM_NCMBUTTONDOWN:
		str.Format("0x%04X  WM_NCMBUTTONDOWN\n",msg.message);
		break;
	case WM_NCMBUTTONUP:
		str.Format("0x%04X  WM_NCMBUTTONUP\n",msg.message);
		break;
	case WM_NCMBUTTONDBLCLK:
		str.Format("0x%04X  WM_NCMBUTTONDBLCLK\n",msg.message);
		break;
#if(_WIN32_WINNT >= 0x0500)
	case WM_NCXBUTTONDOWN:
		str.Format("0x%04X  WM_NCXBUTTONDOWN\n",msg.message);
		break;
	case WM_NCXBUTTONUP:
		str.Format("0x%04X  WM_NCXBUTTONUP\n",msg.message);
		break;
	case WM_NCXBUTTONDBLCLK:
		str.Format("0x%04X  WM_NCXBUTTONDBLCLK\n",msg.message);
		break;
#endif /* _WIN32_WINNT >= 0x0500 */
#if(_WIN32_WINNT >= 0x0501)
	case WM_INPUT_DEVICE_CHANGE:
		str.Format("0x%04X  WM_INPUT_DEVICE_CHANGE\n",msg.message);
		break;
#endif /* _WIN32_WINNT >= 0x0501 */
#if(_WIN32_WINNT >= 0x0501)
	case WM_INPUT:
		str.Format("0x%04X  WM_INPUT\n",msg.message);
		break;
#endif /* _WIN32_WINNT >= 0x0501 */
		// 	case WM_KEYFIRST:
		// 		str.Format("0x%04X  \n",msg.message);
		// 		break;
	case WM_KEYDOWN: // == WM_KEYFIRST
		str.Format("0x%04X  WM_KEYDOWN== WM_KEYFIRST\n",msg.message);
		break;
	case WM_KEYUP:
		str.Format("0x%04X  WM_KEYUP\n",msg.message);
		break;
	case WM_CHAR:
		str.Format("0x%04X  WM_CHAR\n",msg.message);
		break;
	case WM_DEADCHAR:
		str.Format("0x%04X  WM_DEADCHAR\n",msg.message);
		break;
	case WM_SYSKEYDOWN:
		str.Format("0x%04X  WM_SYSKEYDOWN\n",msg.message);
		break;
	case WM_SYSKEYUP:
		str.Format("0x%04X  WM_SYSKEYUP\n",msg.message);
		break;
	case WM_SYSCHAR:
		str.Format("0x%04X  WM_SYSCHAR\n",msg.message);
		break;
	case WM_SYSDEADCHAR:
		str.Format("0x%04X  WM_SYSDEADCHAR\n",msg.message);
		break;
#if(_WIN32_WINNT >= 0x0501)
		// 	case WM_UNICHAR:
		// 		str.Format("0x%04X  \n",msg.message);
		// 		break;
	case WM_KEYLAST: // == WM_UNICHAR
		str.Format("0x%04X  WM_KEYLAST== WM_UNICHAR\n",msg.message);
		break;
	case UNICODE_NOCHAR:
		str.Format("0x%04X  UNICODE_NOCHAR\n",msg.message);
		break;
#else
	case WM_KEYLAST:
		str.Format("0x%04X  WM_KEYLAST\n",msg.message);
		break;
#endif /* _WIN32_WINNT >= 0x0501 */
#if(WINVER >= 0x0400)
	case WM_IME_STARTCOMPOSITION:
		str.Format("0x%04X  WM_IME_STARTCOMPOSITION\n",msg.message);
		break;
	case WM_IME_ENDCOMPOSITION:
		str.Format("0x%04X  WM_IME_ENDCOMPOSITION\n",msg.message);
		break;
		// 	case WM_IME_COMPOSITION:
		// 		str.Format("0x%04X  WM_IME_COMPOSITION\n",msg.message);
		// 		break;
	case WM_IME_KEYLAST:// ==WM_IME_COMPOSITION
		str.Format("0x%04X  WM_IME_KEYLAST==WM_IME_COMPOSITION\n",msg.message);
		break;
#endif /* WINVER >= 0x0400 */
	case WM_INITDIALOG:
		str.Format("0x%04X  WM_INITDIALOG\n",msg.message);
		break;
	case WM_COMMAND:
		str.Format("0x%04X  WM_COMMAND\n",msg.message);
		break;
	case WM_SYSCOMMAND:
		str.Format("0x%04X  WM_SYSCOMMAND\n",msg.message);
		break;
	case WM_TIMER:
		str.Format("0x%04X  WM_TIMER\n",msg.message);
		break;
	case WM_HSCROLL:
		str.Format("0x%04X  WM_HSCROLL\n",msg.message);
		break;
	case WM_VSCROLL:
		str.Format("0x%04X  WM_VSCROLL\n",msg.message);
		break;
	case WM_INITMENU:
		str.Format("0x%04X  WM_INITMENU\n",msg.message);
		break;
	case WM_INITMENUPOPUP:
		str.Format("0x%04X  WM_INITMENUPOPUP\n",msg.message);
		break;
#if(WINVER >= 0x0601)
	case WM_GESTURE:
		str.Format("0x%04X  WM_GESTURE\n",msg.message);
		break;
	case WM_GESTURENOTIFY:
		str.Format("0x%04X  WM_GESTURENOTIFY\n",msg.message);
		break;
#endif /* WINVER >= 0x0601 */
	case WM_MENUSELECT:
		str.Format("0x%04X  WM_MENUSELECT\n",msg.message);
		break;
	case WM_MENUCHAR:
		str.Format("0x%04X  WM_MENUCHAR\n",msg.message);
		break;
	case WM_ENTERIDLE:
		str.Format("0x%04X  WM_ENTERIDLE\n",msg.message);
		break;
#if(WINVER >= 0x0500)
#ifndef _WIN32_WCE
	case WM_MENURBUTTONUP:
		str.Format("0x%04X  WM_MENURBUTTONUP\n",msg.message);
		break;
	case WM_MENUDRAG:
		str.Format("0x%04X  WM_MENUDRAG\n",msg.message);
		break;
	case WM_MENUGETOBJECT:
		str.Format("0x%04X  WM_MENUGETOBJECT\n",msg.message);
		break;
	case WM_UNINITMENUPOPUP:
		str.Format("0x%04X  WM_UNINITMENUPOPUP\n",msg.message);
		break;
	case WM_MENUCOMMAND:
		str.Format("0x%04X  WM_MENUCOMMAND\n",msg.message);
		break;
#ifndef _WIN32_WCE
#if(_WIN32_WINNT >= 0x0500)
	case WM_CHANGEUISTATE:
		str.Format("0x%04X  WM_CHANGEUISTATE\n",msg.message);
		break;
	case WM_UPDATEUISTATE:
		str.Format("0x%04X  WM_UPDATEUISTATE\n",msg.message);
		break;
	case WM_QUERYUISTATE:
		str.Format("0x%04X  WM_QUERYUISTATE\n",msg.message);
		break;
#endif /* _WIN32_WINNT >= 0x0500 */
#endif
#endif
#endif /* WINVER >= 0x0500 */
	case WM_CTLCOLORMSGBOX:
		str.Format("0x%04X  WM_CTLCOLORMSGBOX\n",msg.message);
		break;
	case WM_CTLCOLOREDIT:
		str.Format("0x%04X  WM_CTLCOLOREDIT\n",msg.message);
		break;
	case WM_CTLCOLORLISTBOX:
		str.Format("0x%04X  WM_CTLCOLORLISTBOX\n",msg.message);
		break;
	case WM_CTLCOLORBTN:
		str.Format("0x%04X  WM_CTLCOLORBTN\n",msg.message);
		break;
	case WM_CTLCOLORDLG:
		str.Format("0x%04X  WM_CTLCOLORDLG\n",msg.message);
		break;
	case WM_CTLCOLORSCROLLBAR:
		str.Format("0x%04X  WM_CTLCOLORSCROLLBAR\n",msg.message);
		break;
	case WM_CTLCOLORSTATIC:
		str.Format("0x%04X  WM_CTLCOLORSTATIC\n",msg.message);
		break;
	case MN_GETHMENU:
		str.Format("0x%04X  MN_GETHMENU\n",msg.message);
		break;
		// 	case WM_MOUSEFIRST:
		// 		str.Format("0x%04X  WM_MOUSEFIRST\n",msg.message);
		// 		break;
	case WM_MOUSEMOVE: // == WM_MOUSEFIRST
		str.Format("0x%04X  WM_MOUSEMOVE== WM_MOUSEFIRST\n",msg.message);
		break;
	case WM_LBUTTONDOWN:
		str.Format("0x%04X  WM_LBUTTONDOWN\n",msg.message);
		break;
	case WM_LBUTTONUP:
		str.Format("0x%04X  WM_LBUTTONUP\n",msg.message);
		break;
	case WM_LBUTTONDBLCLK:
		str.Format("0x%04X  WM_LBUTTONDBLCLK\n",msg.message);
		break;
	case WM_RBUTTONDOWN:
		str.Format("0x%04X  WM_RBUTTONDOWN\n",msg.message);
		break;
	case WM_RBUTTONUP:
		str.Format("0x%04X  WM_RBUTTONUP\n",msg.message);
		break;
	case WM_RBUTTONDBLCLK:
		str.Format("0x%04X  WM_RBUTTONDBLCLK\n",msg.message);
		break;
	case WM_MBUTTONDOWN:
		str.Format("0x%04X  WM_MBUTTONDOWN\n",msg.message);
		break;
	case WM_MBUTTONUP:
		str.Format("0x%04X  WM_MBUTTONUP\n",msg.message);
		break;
	case WM_MBUTTONDBLCLK:
		str.Format("0x%04X  WM_MBUTTONDBLCLK\n",msg.message);
		break;
#if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
	case WM_MOUSEWHEEL:
		str.Format("0x%04X  WM_MOUSEWHEEL\n",msg.message);
		break;
#endif
#if (_WIN32_WINNT >= 0x0500)
	case WM_XBUTTONDOWN:
		str.Format("0x%04X  WM_XBUTTONDOWN\n",msg.message);
		break;
	case WM_XBUTTONUP:
		str.Format("0x%04X  WM_XBUTTONUP\n",msg.message);
		break;
	case WM_XBUTTONDBLCLK:
		str.Format("0x%04X  WM_XBUTTONDBLCLK\n",msg.message);
		break;
#endif
#if (_WIN32_WINNT >= 0x0600)
		// 	case WM_MOUSEHWHEEL:
		// 		str.Format("0x%04X  \n",msg.message);
		// 		break;
#endif
#if (_WIN32_WINNT >= 0x0600)
	case WM_MOUSELAST://==WM_MOUSEHWHEEL
		str.Format("0x%04X  WM_MOUSELAST==WM_MOUSEHWHEEL\n",msg.message);
		break;
#elif (_WIN32_WINNT >= 0x0500)
	case WM_MOUSELAST:
		str.Format("0x%04X  WM_MOUSELAST\n",msg.message);
		break;
#elif (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
	case WM_MOUSELAST:
		str.Format("0x%04X  WM_MOUSELAST\n",msg.message);
		break;
#else
	case WM_MOUSELAST:
		str.Format("0x%04X  WM_MOUSELAST\n",msg.message);
		break;
#endif /* (_WIN32_WINNT >= 0x0600) */
	case WM_PARENTNOTIFY:
		str.Format("0x%04X  WM_PARENTNOTIFY\n",msg.message);
		break;
	case WM_ENTERMENULOOP:
		str.Format("0x%04X  WM_ENTERMENULOOP\n",msg.message);
		break;
	case WM_EXITMENULOOP:
		str.Format("0x%04X  WM_EXITMENULOOP\n",msg.message);
		break;
#if(WINVER >= 0x0400)
	case WM_NEXTMENU:
		str.Format("0x%04X  WM_NEXTMENU\n",msg.message);
		break;
	case WM_SIZING:
		str.Format("0x%04X  WM_SIZING\n",msg.message);
		break;
	case WM_CAPTURECHANGED:
		str.Format("0x%04X  WM_CAPTURECHANGED\n",msg.message);
		break;
	case WM_MOVING:
		str.Format("0x%04X  WM_MOVING\n",msg.message);
		break;
#endif /* WINVER >= 0x0400 */
#if(WINVER >= 0x0400)
	case WM_POWERBROADCAST:
		str.Format("0x%04X  WM_POWERBROADCAST\n",msg.message);
		break;
	case WM_DEVICECHANGE:
		str.Format("0x%04X  WM_DEVICECHANGE\n",msg.message);
		break;
#endif /* WINVER >= 0x0400 */
	case WM_MDICREATE:
		str.Format("0x%04X  WM_MDICREATE\n",msg.message);
		break;
	case WM_MDIDESTROY:
		str.Format("0x%04X  WM_MDIDESTROY\n",msg.message);
		break;
	case WM_MDIACTIVATE:
		str.Format("0x%04X  WM_MDIACTIVATE\n",msg.message);
		break;
	case WM_MDIRESTORE:
		str.Format("0x%04X  WM_MDIRESTORE\n",msg.message);
		break;
	case WM_MDINEXT:
		str.Format("0x%04X  WM_MDINEXT\n",msg.message);
		break;
	case WM_MDIMAXIMIZE:
		str.Format("0x%04X  WM_MDIMAXIMIZE\n",msg.message);
		break;
	case WM_MDITILE:
		str.Format("0x%04X  WM_MDITILE\n",msg.message);
		break;
	case WM_MDICASCADE:
		str.Format("0x%04X  WM_MDICASCADE\n",msg.message);
		break;
	case WM_MDIICONARRANGE:
		str.Format("0x%04X  WM_MDIICONARRANGE\n",msg.message);
		break;
	case WM_MDIGETACTIVE:
		str.Format("0x%04X  WM_MDIGETACTIVE\n",msg.message);
		break;
	case WM_MDISETMENU:
		str.Format("0x%04X  WM_MDISETMENU\n",msg.message);
		break;
	case WM_ENTERSIZEMOVE:
		str.Format("0x%04X  WM_ENTERSIZEMOVE\n",msg.message);
		break;
	case WM_EXITSIZEMOVE:
		str.Format("0x%04X  WM_EXITSIZEMOVE\n",msg.message);
		break;
	case WM_DROPFILES:
		str.Format("0x%04X  WM_DROPFILES\n",msg.message);
		break;
	case WM_MDIREFRESHMENU:
		str.Format("0x%04X  WM_MDIREFRESHMENU\n",msg.message);
		break;
#if(WINVER >= 0x0601)
	case WM_TOUCH:
		str.Format("0x%04X  WM_TOUCH\n",msg.message);
		break;
#endif /* WINVER >= 0x0601 */
#if(WINVER >= 0x0400)
	case WM_IME_SETCONTEXT:
		str.Format("0x%04X  WM_IME_SETCONTEXT\n",msg.message);
		break;
	case WM_IME_NOTIFY:
		str.Format("0x%04X  WM_IME_NOTIFY\n",msg.message);
		break;
	case WM_IME_CONTROL:
		str.Format("0x%04X  WM_IME_CONTROL\n",msg.message);
		break;
	case WM_IME_COMPOSITIONFULL:
		str.Format("0x%04X  WM_IME_COMPOSITIONFULL\n",msg.message);
		break;
	case WM_IME_SELECT:
		str.Format("0x%04X  WM_IME_SELECT\n",msg.message);
		break;
	case WM_IME_CHAR:
		str.Format("0x%04X  WM_IME_CHAR\n",msg.message);
		break;
#endif /* WINVER >= 0x0400 */
#if(WINVER >= 0x0500)
	case WM_IME_REQUEST:
		str.Format("0x%04X  WM_IME_REQUEST\n",msg.message);
		break;
#endif /* WINVER >= 0x0500 */
#if(WINVER >= 0x0400)
	case WM_IME_KEYDOWN:
		str.Format("0x%04X  WM_IME_KEYDOWN\n",msg.message);
		break;
	case WM_IME_KEYUP:
		str.Format("0x%04X  WM_IME_KEYUP\n",msg.message);
		break;
#endif /* WINVER >= 0x0400 */
#if((_WIN32_WINNT >= 0x0400) || (WINVER >= 0x0500))
	case WM_MOUSEHOVER:
		str.Format("0x%04X  WM_MOUSEHOVER\n",msg.message);
		break;
	case WM_MOUSELEAVE:
		str.Format("0x%04X  WM_MOUSELEAVE\n",msg.message);
		break;
#endif
#if(WINVER >= 0x0500)
	case WM_NCMOUSEHOVER:
		str.Format("0x%04X  WM_NCMOUSEHOVER\n",msg.message);
		break;
	case WM_NCMOUSELEAVE:
		str.Format("0x%04X  WM_NCMOUSELEAVE\n",msg.message);
		break;
#endif /* WINVER >= 0x0500 */

#if(_WIN32_WINNT >= 0x0501)
	case WM_WTSSESSION_CHANGE:
		str.Format("0x%04X  WM_WTSSESSION_CHANGE\n",msg.message);
		break;
	case WM_TABLET_FIRST:
		str.Format("0x%04X  WM_TABLET_FIRST\n",msg.message);
		break;
	case WM_TABLET_LAST:
		str.Format("0x%04X  WM_TABLET_LAST\n",msg.message);
		break;
#endif /* _WIN32_WINNT >= 0x0501 */
	case WM_CUT:
		str.Format("0x%04X  WM_CUT\n",msg.message);
		break;
	case WM_COPY:
		str.Format("0x%04X  WM_COPY\n",msg.message);
		break;
	case WM_PASTE:
		str.Format("0x%04X  WM_PASTE\n",msg.message);
		break;
	case WM_CLEAR:
		str.Format("0x%04X  WM_CLEAR\n",msg.message);
		break;
	case WM_UNDO:
		str.Format("0x%04X  WM_UNDO\n",msg.message);
		break;
	case WM_RENDERFORMAT:
		str.Format("0x%04X  WM_RENDERFORMAT\n",msg.message);
		break;
	case WM_RENDERALLFORMATS:
		str.Format("0x%04X  WM_RENDERALLFORMATS\n",msg.message);
		break;
	case WM_DESTROYCLIPBOARD:
		str.Format("0x%04X  WM_DESTROYCLIPBOARD\n",msg.message);
		break;
	case WM_DRAWCLIPBOARD:
		str.Format("0x%04X  WM_DRAWCLIPBOARD\n",msg.message);
		break;
	case WM_PAINTCLIPBOARD:
		str.Format("0x%04X  WM_PAINTCLIPBOARD\n",msg.message);
		break;
	case WM_VSCROLLCLIPBOARD:
		str.Format("0x%04X  WM_VSCROLLCLIPBOARD\n",msg.message);
		break;
	case WM_SIZECLIPBOARD:
		str.Format("0x%04X  WM_SIZECLIPBOARD\n",msg.message);
		break;
	case WM_ASKCBFORMATNAME:
		str.Format("0x%04X  WM_ASKCBFORMATNAME\n",msg.message);
		break;
	case WM_CHANGECBCHAIN:
		str.Format("0x%04X  WM_CHANGECBCHAIN\n",msg.message);
		break;
	case WM_HSCROLLCLIPBOARD:
		str.Format("0x%04X  WM_HSCROLLCLIPBOARD\n",msg.message);
		break;
	case WM_QUERYNEWPALETTE:
		str.Format("0x%04X  WM_QUERYNEWPALETTE\n",msg.message);
		break;
	case WM_PALETTEISCHANGING:
		str.Format("0x%04X  WM_PALETTEISCHANGING\n",msg.message);
		break;
	case WM_PALETTECHANGED:
		str.Format("0x%04X  WM_PALETTECHANGED\n",msg.message);
		break;
	case WM_HOTKEY:
		str.Format("0x%04X  WM_HOTKEY\n",msg.message);
		break;
#if(WINVER >= 0x0400)
	case WM_PRINT:
		str.Format("0x%04X  WM_PRINT\n",msg.message);
		break;
	case WM_PRINTCLIENT:
		str.Format("0x%04X  WM_PRINTCLIENT\n",msg.message);
		break;
#endif /* WINVER >= 0x0400 */
#if(_WIN32_WINNT >= 0x0500)
	case WM_APPCOMMAND:
		str.Format("0x%04X  WM_APPCOMMAND\n",msg.message);
		break;
#endif /* _WIN32_WINNT >= 0x0500 */
#if(_WIN32_WINNT >= 0x0501)
	case WM_THEMECHANGED:
		str.Format("0x%04X  WM_THEMECHANGED\n",msg.message);
		break;
#endif /* _WIN32_WINNT >= 0x0501 */
#if(_WIN32_WINNT >= 0x0501)
	case WM_CLIPBOARDUPDATE:
		str.Format("0x%04X  WM_CLIPBOARDUPDATE\n",msg.message);
		break;
#endif /* _WIN32_WINNT >= 0x0501 */
#if(_WIN32_WINNT >= 0x0600)
	case WM_DWMCOMPOSITIONCHANGED:
		str.Format("0x%04X  WM_DWMCOMPOSITIONCHANGED\n",msg.message);
		break;
	case WM_DWMNCRENDERINGCHANGED:
		str.Format("0x%04X  WM_DWMNCRENDERINGCHANGED\n",msg.message);
		break;
	case WM_DWMCOLORIZATIONCOLORCHANGED:
		str.Format("0x%04X  WM_DWMCOLORIZATIONCOLORCHANGED\n",msg.message);
		break;
	case WM_DWMWINDOWMAXIMIZEDCHANGE:
		str.Format("0x%04X  WM_DWMWINDOWMAXIMIZEDCHANGE\n",msg.message);
		break;
#endif /* _WIN32_WINNT >= 0x0600 */
#if(_WIN32_WINNT >= 0x0601)
	case WM_DWMSENDICONICTHUMBNAIL:
		str.Format("0x%04X  WM_DWMSENDICONICTHUMBNAIL\n",msg.message);
		break;
	case WM_DWMSENDICONICLIVEPREVIEWBITMAP:
		str.Format("0x%04X  WM_DWMSENDICONICLIVEPREVIEWBITMAP\n",msg.message);
		break;
#endif /* _WIN32_WINNT >= 0x0601 */
#if(WINVER >= 0x0600)
	case WM_GETTITLEBARINFOEX:
		str.Format("0x%04X  WM_GETTITLEBARINFOEX\n",msg.message);
		break;
#endif /* WINVER >= 0x0600 */
#if(WINVER >= 0x0400)
	case WM_HANDHELDFIRST:
		str.Format("0x%04X  WM_HANDHELDFIRST\n",msg.message);
		break;
	case WM_HANDHELDLAST:
		str.Format("0x%04X  WM_HANDHELDLAST\n",msg.message);
		break;
	case WM_AFXFIRST:
		str.Format("0x%04X  WM_AFXFIRST\n",msg.message);
		break;
	case WM_AFXLAST:
		str.Format("0x%04X  WM_AFXLAST\n",msg.message);
		break;
#endif /* WINVER >= 0x0400 */
	case WM_PENWINFIRST:
		str.Format("0x%04X  WM_PENWINFIRST\n",msg.message);
		break;
	case WM_PENWINLAST:
		str.Format("0x%04X  WM_PENWINLAST\n",msg.message);
		break;
#if(WINVER >= 0x0400)
	case WM_APP:
		str.Format("0x%04X  WM_APP\n",msg.message);
		break;
#endif /* WINVER >= 0x0400 */
	case WM_USER:// 截止到winuser.h文件的2231行
		str.Format("0x%04X  WM_USER\n",msg.message);
		break;
	default:// 可能有没写全的消息,如果有以后过滤出来在添加到case里面
		str.Format("0x%04X  default: unknown windows message\n",msg.message);
		break;
	}


	OutputDebugString(str);
}


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值