#include <windows.h> #include <stdio.h> LRESULT CALLBACK WinSunProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam ); int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd ) { WNDCLASS wndcls; wndcls.cbClsExtra=0; wndcls.cbWndExtra=0; wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH); wndcls.hCursor=LoadCursor(NULL,IDC_CROSS); wndcls.hIcon=LoadIcon(NULL,IDI_ERROR); wndcls.hInstance=hInstance; wndcls.lpfnWndProc=WinSunProc; wndcls.lpszClassName="WinMain"; wndcls.lpszMenuName=NULL; wndcls.style=CS_HREDRAW|CS_VREDRAW; RegisterClass(&wndcls); HWND hwnd; hwnd=CreateWindow("WinMain","qq120848369",WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL); ShowWindow(hwnd,SW_SHOWNORMAL); UpdateWindow(hwnd); MSG msg; while(GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return 0; } LRESULT CALLBACK WinSunProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) { switch(uMsg) { case WM_CHAR: char szChar[20]; sprintf(szChar,"char is %d",wParam); MessageBox(hwnd,szChar,"信息",MB_OK); break; case WM_LBUTTONDOWN: { MessageBox(hwnd,"mouse clicked","信息",MB_OK); HDC hdc=GetDC(hwnd); TextOut(hdc,0,50,"左键按下!",strlen("左键按下!")); ReleaseDC(hwnd,hdc); } break; case WM_PAINT: { HDC hdc; PAINTSTRUCT ps; hdc=BeginPaint(hwnd,&ps); TextOut(hdc,0,0,"重画!",strlen("重画!")); EndPaint(hwnd,&ps); } break; case WM_CLOSE: if(IDYES==MessageBox(hwnd,"是否退出?","退出提示",MB_YESNO)) { DestroyWindow(hwnd); } break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd,uMsg,wParam,lParam); } return 0; } 过程: WinMain()主函数. 定义窗口类,填写属性,注册窗口,显示并刷新窗口,循环消息队列. 窗口类的消息响应函数.