#include <windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { HWND hWnd; WNDCLASS wndclass; static TCHAR szAppName[] = TEXT ("HELLO") ; MSG msg; BOOL bRet; wndclass.style=CS_HREDRAW | CS_VREDRAW; wndclass.lpfnWndProc=(WNDPROC)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) GetStockObject (WHITE_BRUSH); wndclass.lpszMenuName=NULL; wndclass.lpszClassName=szAppName; if (!RegisterClass (&wndclass)) return 0 ; hWnd = CreateWindow(szAppName, TEXT ("HELLO"), WS_OVERLAPPEDWINDOW, 0, 0, 800, 600, NULL, NULL, hInstance, NULL); if (!hWnd) return 0; ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); bRet=TRUE; while (bRet) { bRet=GetMessage(&msg, NULL, 0, 0); if(bRet==-1) return 0;//error if(bRet) { TranslateMessage(&msg); DispatchMessage(&msg); } } return msg.wParam; } LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { PAINTSTRUCT ps; HDC hdc; RECT rect ; static HBRUSH hBrush; static BYTE Red,Green,Blue; static DWORD color; switch(msg) { case WM_CREATE: color=0; SetTimer (hwnd, 1, 10, NULL) ; break; case WM_TIMER: color=color+1; if(color>0x00FFFFFF) color=0; InvalidateRect (hwnd, NULL, FALSE) ; break; case WM_PAINT: hdc = BeginPaint(hwnd, &ps); GetClientRect (hwnd, &rect) ; hBrush = CreateSolidBrush (color) ; FillRect (hdc, &rect, hBrush) ; EndPaint(hwnd, &ps); DeleteObject (hBrush) ; break; case WM_CLOSE: DestroyWindow(hwnd); break; case WM_DESTROY: KillTimer (hwnd, 1) ; PostQuitMessage(0); break; default: return DefWindowProc(hwnd, msg, wParam, lParam); } return 0; }