| /** |
| * This file has no copyright assigned and is placed in the Public Domain. |
| * This file is part of the mingw-w64 runtime package. |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| */ |
| #ifndef WIN32_LEAN_AND_MEAN |
| #define WIN32_LEAN_AND_MEAN |
| #endif |
| #include <windows.h> |
| |
| #define TITLE "WinMain" |
| #define WIDTH 250 |
| #define HEIGHT 250 |
| |
| void Draw(HDC hdc); |
| |
| LRESULT CALLBACK WindowProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) |
| { |
| PAINTSTRUCT ps; |
| switch (Msg) |
| { |
| case WM_PAINT: |
| BeginPaint(hWnd,&ps); |
| Draw(ps.hdc); |
| EndPaint(hWnd,&ps); |
| break; |
| case WM_DESTROY: |
| PostQuitMessage(0); |
| break; |
| default: |
| return DefWindowProc(hWnd,Msg,wParam,lParam); |
| } |
| return 0; |
| } |
| |
| char szClassName[] = "WinMain"; |
| |
| int WINAPI WinMain(HINSTANCE hThisInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) |
| { |
| HWND hwnd; |
| MSG messages; |
| WNDCLASSEX wincl; |
| |
| wincl.hInstance = hThisInstance; |
| wincl.lpszClassName = szClassName; |
| wincl.lpfnWndProc = WindowProc; |
| wincl.style = CS_OWNDC | CS_VREDRAW | CS_HREDRAW | CS_DBLCLKS; |
| wincl.cbSize = sizeof(WNDCLASSEX); |
| |
| wincl.hIcon = LoadIcon(NULL,IDI_APPLICATION); |
| wincl.hIconSm = LoadIcon(NULL,IDI_APPLICATION); |
| wincl.hCursor = LoadCursor(NULL,IDC_ARROW); |
| wincl.lpszMenuName = NULL; |
| wincl.cbClsExtra = 0; |
| wincl.cbWndExtra = 0; |
| wincl.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);; |
| |
| if (!RegisterClassEx(&wincl)) return 0; |
| |
| hwnd = CreateWindowEx(0, szClassName, TITLE, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, WIDTH, HEIGHT, |
| HWND_DESKTOP, NULL, hThisInstance, NULL); |
| |
| ShowWindow(hwnd,nCmdShow); |
| |
| while (GetMessage(&messages,NULL,0,0)) |
| { |
| TranslateMessage(&messages); |
| DispatchMessage(&messages); |
| } |
| return (int)messages.wParam; |
| } |
| |
| void Draw(HDC hdc) |
| { |
| HBRUSH pinsel; |
| pinsel = CreateSolidBrush(RGB(255,255,0)); |
| Rectangle(hdc,10,10,110,110); |
| TextOut(hdc,15,45,"Hello, World!",13); |
| |
| SelectObject(hdc,pinsel); |
| Ellipse(hdc,100,100,200,200); |
| Arc(hdc,120,120,180,180,100,200,200,200); |
| SetPixel(hdc,130,140,0); |
| SetPixel(hdc,170,140,0); |
| MoveToEx(hdc,150,100,0); |
| LineTo(hdc,145,90); |
| LineTo(hdc,155,80); |
| LineTo(hdc,150,75); |
| } |