| /** | |
| * 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. | |
| */ | |
| #define WIN32_LEAN_AND_MEAN | |
| #include <windows.h> | |
| /* mingw-w64 headers */ | |
| #include "libtest.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; | |
| mingw_test_init (); | |
| 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); | |
| } |