#includewindows.h#pragmacomment(lib,\"user32.lib\")#pragmacomment(lib,\"Gdi32.lib\")LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMlParam);HWNDhWnd;//窗口句柄,定义为全局intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow){MSGmsg;WNDCLASSwnd;wnd.style=0;wnd.cbClsExtra=0;//应该0wnd.cbWndExtra=0;//均为0wnd.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//背景填充颜色wnd.hCursor=LoadCursor(NULL,IDC_ARROW);//光标,使用默认光标参数一为NULLwnd.hIcon=LoadIcon(NULL,IDI_EXCLAMATION);//图标wnd.hInstance=hInstance;//句柄wnd.lpfnWndProc=WndProc;//消息处理wnd.lpszClassName=\"XP\";//类名wnd.lpszMenuName=NULL;//菜单名RegisterClass(//注册hWnd=CreateWindow(\"XP\",\"窗口\",WS_OVERLAPPEDWINDOW,100,100,500,500,NULL,NULL,hInstance,NULL);//创建窗口,参考MSDNShowWindow(hWnd,SW_SHOWNORMAL);//显示UpdateWindow(hWnd);//更新窗口while(GetMessage(DispatchMessage(}return0;}/*LRESULTCALLBACKWindowProc(HWNDhwhd,uMsg,WPARAMwParam,LPARAMIParam)消息响应函数定义hwnd:指向窗口的句柄。uMsg:指定消息类型。wParam:消息IParam:消息*/LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMlParam){switch(message){caseWM_CLOSE://关闭if(MessageBox(hWnd,\"是否退出\",\"询问\",MB_YESNO)==IDYES)//使用全局消息框PostQuitMessage(0);//将WM_QUIT加入消息队列中break;caseWM_KEYDOWN://键盘按下,一种消息类型,MFC会更全switch(wParam){caseVK_UP:MessageBox(hWnd,\"上\",\"按下\",MB_OK);caseVK_RBUTTON:MessageBox(hWnd,\"鼠标右键\",\"按下\",MB_OK);break;caseVK_MENU:MessageBox(hWnd,\"Alt\",\"按下\",MB_OK);break;caseVK_END:MessageBox(hWnd,\"END\",\"按下\",MB_OK);break;caseVK_LEFT:MessageBox(hWnd,\"左\",\"按下\",MB_OK);break;caseVK_RIGHT:MessageBox(hWnd,\"右\",\"按下\",MB_OK);break;caseVK_DOWN:MessageBox(hWnd,\"下\",\"按下\",MB_OK);break;caseVK_CONTROL:MessageBox(hWnd,\"Ctrl\",\"按下\",MB_OK);break;caseVK_ESCAPE:MessageBox(hWnd,\"Esc\",\"按下\",MB_OK);//PostQuitMessage(0);break;caseVK_SHIFT:MessageBox(hWnd,\"SHIFT\",\"按下\",MB_OK);break;default:break;}default:returnDefWindowProc(hwnd,message,wParam,lParam);//缺省处理}return(0);}没有外部定义.......MFC是标准的win32Application文件DLL为动态链接库Library,连接文件可以使用类进行封装窗口创建MFC也是如此可以加入afxwin.h头文件对mfc库的调用C的半面向对象的思想mfc对基本数据也有所封装,若果没有C基础,对其不熟悉,可能会进展不顺对于一些函数传参不了,可以参考MSDN追问我的GetMessage()参数写错了。错误的代码GetMessage(DispatchMessage(}return0;//退出WainMain()函数,就是推出.exe执行进程?是因为GetMessage(defds123msg,hwnd,0,0)错误的参数导致循环成死循环,return0;不能执行?关闭之后没关闭的进程占CPU近50%
|