blob: 0adc24f426dc3ab6a624d92c5d681e82787c9989 [file] [log] [blame]
/**
* 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);
}