5 BOOL WINAPI
GdiGradientFill( HDC hdc
, TRIVERTEX
*vert_array
, ULONG nvert
,
6 void * grad_array
, ULONG ngrad
, ULONG mode
);
8 LRESULT WINAPI
MainWndProc(HWND
, UINT
, WPARAM
, LPARAM
);
11 WinMain(HINSTANCE hInstance
,
12 HINSTANCE hPrevInstance
,
20 wc
.lpszClassName
= "GradientClass";
21 wc
.lpfnWndProc
= MainWndProc
;
22 wc
.style
= CS_VREDRAW
| CS_HREDRAW
;
23 wc
.hInstance
= hInstance
;
24 wc
.hIcon
= LoadIcon(NULL
, (LPCTSTR
)IDI_APPLICATION
);
25 wc
.hCursor
= LoadCursor(NULL
, (LPCTSTR
)IDC_ARROW
);
26 wc
.hbrBackground
= (HBRUSH
)GetStockObject(GRAY_BRUSH
);
27 wc
.lpszMenuName
= NULL
;
30 if (RegisterClass(&wc
) == 0)
32 fprintf(stderr
, "RegisterClass failed (last error 0x%lX)\n",
37 hWnd
= CreateWindow("GradientClass",
39 WS_OVERLAPPEDWINDOW
|WS_HSCROLL
|WS_VSCROLL
,
50 fprintf(stderr
, "CreateWindow failed (last error 0x%lX)\n",
55 //tf = CreateFontA(14, 0, 0, TA_BASELINE, FW_NORMAL, FALSE, FALSE, FALSE,
56 // ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
57 // DEFAULT_QUALITY, FIXED_PITCH|FF_DONTCARE, "Timmons");
59 ShowWindow(hWnd
, nCmdShow
);
61 while(GetMessage(&msg
, NULL
, 0, 0))
63 TranslateMessage(&msg
);
64 DispatchMessage(&msg
);
71 LRESULT CALLBACK
MainWndProc(HWND hWnd
, UINT msg
, WPARAM wParam
, LPARAM lParam
)
81 GRADIENT_TRIANGLE gTRi
[3];
82 GRADIENT_RECT gRect
[2];
83 hDC
= BeginPaint(hWnd
, &ps
);
87 vert
[0] .Red
= 0xff00;
88 vert
[0] .Green
= 0xff00;
89 vert
[0] .Blue
= 0xff00;
90 vert
[0] .Alpha
= 0x0000;
94 vert
[1] .Red
= 0x0000;
95 vert
[1] .Green
= 0x0000;
96 vert
[1] .Blue
= 0xff00;
97 vert
[1] .Alpha
= 0x0000;
101 vert
[2] .Red
= 0xff00;
102 vert
[2] .Green
= 0x0000;
103 vert
[2] .Blue
= 0x0000;
104 vert
[2] .Alpha
= 0x0000;
108 vert
[3] .Red
= 0x8000;
109 vert
[3] .Green
= 0x8000;
110 vert
[3] .Blue
= 0x0000;
111 vert
[3] .Alpha
= 0x0000;
115 vert
[4] .Red
= 0x0000;
116 vert
[4] .Green
= 0xff00;
117 vert
[4] .Blue
= 0x0000;
118 vert
[4] .Alpha
= 0x0000;
132 GdiGradientFill(hDC
,vert
,5,&gTRi
,3,GRADIENT_FILL_TRIANGLE
);
137 vert
[0] .Red
= 0x0000;
138 vert
[0] .Green
= 0x0000;
139 vert
[0] .Blue
= 0x0000;
140 vert
[0] .Alpha
= 0x0000;
144 vert
[1] .Red
= 0x0000;
145 vert
[1] .Green
= 0x0000;
146 vert
[1] .Blue
= 0xff00;
147 vert
[1] .Alpha
= 0x0000;
151 vert
[2] .Red
= 0x0000;
152 vert
[2] .Green
= 0x0000;
153 vert
[2] .Blue
= 0x0000;
154 vert
[2] .Alpha
= 0x0000;
158 vert
[3] .Red
= 0x0000;
159 vert
[3] .Green
= 0x0000;
160 vert
[3] .Blue
= 0xff00;
161 vert
[3] .Alpha
= 0x0000;
163 gRect
[0].UpperLeft
= 0;
164 gRect
[0].LowerRight
= 1;
166 gRect
[1].UpperLeft
= 2;
167 gRect
[1].LowerRight
= 3;
169 GdiGradientFill(hDC
,vert
,4,&gRect
[0],1,GRADIENT_FILL_RECT_H
);
170 GdiGradientFill(hDC
,vert
,4,&gRect
[1],1,GRADIENT_FILL_RECT_V
);
181 return DefWindowProc(hWnd
, msg
, wParam
, lParam
);