windows程序窗体创建流程模型A--发送自定义消息逻辑上出现Bug

来源:互联网 发布:win7网吧优化工具 编辑:程序博客网 时间:2024/04/29 19:10

创建windows窗体的基本框架中,定义一个消息宏,发送自定义消息,代码如下

#include<windows.h>#define CustomMessages WM_USER+10HWND g_hWnd;long __stdcall WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam);int  __stdcall WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow );int  __stdcall WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ){MSG Message;WNDCLASS WndClass;WndClass.cbClsExtra=0;WndClass.cbWndExtra=0;WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH));WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);WndClass.hInstance=hInstance;WndClass.lpfnWndProc=WndProc;WndClass.lpszClassName="Polygon";WndClass.lpszMenuName=NULL;WndClass.style=0;RegisterClass(&WndClass);HWND hWnd;hWnd=CreateWindow("Polygon","CustomMessagesFuck",// lpClassName lpWindowNameWS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);if(!hWnd)return FALSE;g_hWnd=hWnd;ShowWindow(hWnd,nCmdShow);UpdateWindow(hWnd);while(GetMessage(&Message,0,0,0)){TranslateMessage(&Message);DispatchMessage(&Message);}return Message.wParam;}long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam){switch(iMessage){// case WM_PAINT:// {// return 0;// }case WM_DESTROY:{PostQuitMessage(0);return 0;}case CustomMessages:{MessageBox(hWnd,"这是一个自定义消息","CustomMessagesB",MB_OK);return 0;}case WM_RBUTTONDOWN:{::SendMessage(hWnd, CustomMessages, 0, 0);MessageBox(0,0,0,0);}default:{return(DefWindowProc(hWnd,iMessage,wParam,lParam));}}}

程序运行正常,但是将上面代码的注释部分取消以后,重新运行应用程序以后,点击右键程序就崩了,what‘s the fuck?我估计是消息队列中出现了问题但是我没办法确定,哎!!!!!!!!!!!!!!what‘s the fucking windows’s kernel!!!!!!!!!!!!!!!!!!

0 0