~mingw-w64/mingw-w64/experimental

« back to all changes in this revision

Viewing changes to ros-privexp/mingw-w64-crt/testcases/tstwinmain.c

  • Committer: NightStrike
  • Date: 2010-08-11 22:20:57 UTC
  • Revision ID: svn-v4:4407c894-4637-0410-b4f5-ada5f102cad1:experimental:3266
Branch for adding option for supporting ros

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**
 
2
 * This file has no copyright assigned and is placed in the Public Domain.
 
3
 * This file is part of the w64 mingw-runtime package.
 
4
 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 
5
 */
 
6
#ifndef WIN32_LEAN_AND_MEAN
 
7
#define WIN32_LEAN_AND_MEAN
 
8
#endif
 
9
#include <windows.h>
 
10
 
 
11
#define TITLE "WinMain"
 
12
#define WIDTH 250
 
13
#define HEIGHT 250
 
14
 
 
15
void Draw(HDC hdc);
 
16
 
 
17
LRESULT CALLBACK WindowProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam)
 
18
{
 
19
  PAINTSTRUCT ps;
 
20
  switch (Msg)
 
21
  {
 
22
  case WM_PAINT:
 
23
    BeginPaint(hWnd,&ps);
 
24
    Draw(ps.hdc);
 
25
    EndPaint(hWnd,&ps);
 
26
    break;
 
27
  case WM_DESTROY:
 
28
    PostQuitMessage(0);
 
29
    break;
 
30
  default:
 
31
    return DefWindowProc(hWnd,Msg,wParam,lParam);
 
32
  }
 
33
  return 0;
 
34
}
 
35
 
 
36
char szClassName[] = "WinMain";
 
37
 
 
38
int WINAPI WinMain(HINSTANCE hThisInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
 
39
{
 
40
  HWND hwnd;
 
41
  MSG messages;
 
42
  WNDCLASSEX wincl;
 
43
 
 
44
  wincl.hInstance = hThisInstance;
 
45
  wincl.lpszClassName = szClassName;
 
46
  wincl.lpfnWndProc = WindowProc;
 
47
  wincl.style = CS_OWNDC | CS_VREDRAW | CS_HREDRAW | CS_DBLCLKS;
 
48
  wincl.cbSize = sizeof(WNDCLASSEX);
 
49
 
 
50
  wincl.hIcon = LoadIcon(NULL,IDI_APPLICATION);
 
51
  wincl.hIconSm = LoadIcon(NULL,IDI_APPLICATION);
 
52
  wincl.hCursor = LoadCursor(NULL,IDC_ARROW);
 
53
  wincl.lpszMenuName = NULL;
 
54
  wincl.cbClsExtra = 0;
 
55
  wincl.cbWndExtra = 0;
 
56
  wincl.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);;
 
57
 
 
58
  if (!RegisterClassEx(&wincl)) return 0;
 
59
 
 
60
  hwnd = CreateWindowEx(0, szClassName, TITLE, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, WIDTH, HEIGHT,
 
61
                        HWND_DESKTOP, NULL, hThisInstance, NULL);
 
62
 
 
63
  ShowWindow(hwnd,nCmdShow);
 
64
 
 
65
  while (GetMessage(&messages,NULL,0,0))
 
66
  {
 
67
    TranslateMessage(&messages);
 
68
    DispatchMessage(&messages);
 
69
  }
 
70
  return (int)messages.wParam;
 
71
}
 
72
 
 
73
void Draw(HDC hdc)
 
74
{
 
75
  HBRUSH pinsel;
 
76
  pinsel = CreateSolidBrush(RGB(255,255,0));
 
77
  Rectangle(hdc,10,10,110,110);
 
78
  TextOut(hdc,15,45,"Hello, World!",13);
 
79
 
 
80
  SelectObject(hdc,pinsel);
 
81
  Ellipse(hdc,100,100,200,200);
 
82
  Arc(hdc,120,120,180,180,100,200,200,200);
 
83
  SetPixel(hdc,130,140,0);
 
84
  SetPixel(hdc,170,140,0);
 
85
  MoveToEx(hdc,150,100,0);
 
86
  LineTo(hdc,145,90);
 
87
  LineTo(hdc,155,80);
 
88
  LineTo(hdc,150,75);
 
89
}