最基本的WINDOWS程序 #include <Windows.h> #include <tchar.h> ///文件包含 LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); //窗口过程函数原型申明,定义在后。 程序入口函数 int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPTSTR lpCmdLine,int nCmdShow) { static TCHAR szAppName[]=_T("HelloWin"); HWND hwnd; MSG msg; WNDCLASS wndclass; //定义窗口类 wndclass.style=CS_HREDRAW|CS_VREDRAW; wndclass.lpfnWndProc=WndProc; wndclass.cbClsExtra=0; wndclass.cbWndExtra=0; wndclass.hInstance=hInstance; wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION); wndclass.hCursor=LoadCursor(NULL,IDC_ARROW); wndclass.hbrBackground=(HBRUSH)(COLOR_WINDOW+1); wndclass.lpszMenuName=NULL; wndclass.lpszClassName=szAppName; 注册窗口类 if(!RegisterClass(&wndclass)) { MessageBox(NULL,_T(""),szAppName,MB_ICONERROR); return 0; } 创建窗口 hwnd=CreateWindow(szAppName, _T("The HelloWin Program"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0, CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL); 显示窗口 ShowWindow(hwnd,nCmdShow); UpdateWindow(hwnd);更新窗口 消息循环 while(GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } 窗口过程函数,对消息的处理 LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; RECT rect; switch(message) { case WM_KEYDOWN: hdc=GetDC(hwnd); TextOut(hdc,0,0,_T("WM_KEYDOW,OK"),12); ReleaseDC(hwnd,hdc); break; case WM_CREATE: break; case WM_PAINT: hdc=BeginPaint(hwnd,&ps); GetClientRect(hwnd,&rect); DrawText(hdc,_T("Hello,The First Application!"),-1,&rect, DT_SINGLELINE|DT_CENTER|DT_VCENTER); EndPaint(hwnd,&ps); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd,message,wParam,lParam); } return 0; }