#include <Windows.h>
#include "resource.h"
long _stdcall myfunc(HWND,UINT,UINT,long);
WNDCLASSA a;
HINSTANCE hi;
HDC d;
HPEN hp;
void color();
int c;
int _stdcall WinMain(HINSTANCE i,HINSTANCE j,char *k,int l)
{
HWND hwnd;
MSG m;
a.style=CS_HREDRAW|CS_VREDRAW;
a.lpfnWndProc=myfunc;
a.hInstance=i;
a.hbrBackground=(HBRUSH)CreateSolidBrush(RGB(500,400,60));
a.lpszClassName="my";
a.lpszMenuName=MAKEINTRESOURCEA(IDR_MENU1);
RegisterClassA(&a);
hwnd=CreateWindowA("my","Controls",WS_OVERLAPPEDWINDOW,100,100,20,20,0,0,i,0);
ShowWindow(hwnd,3);
while(GetMessage(&m,0,0,0))
DispatchMessage(&m);
return 0;
}
long _stdcall myfunc(HWND w,UINT x,UINT y,long z)
{
const POINT pt[10]={250,150,250,300,300,350,400,300,320,190};
int c=5;
switch(x)
{
case WM_COMMAND:
{
switch(y)
{
case RECTANGLE:
d=GetDC(w);
color();
Rectangle(d,120,100,50,70);
ReleaseDC(w,d);
break;
case LINE:
d=GetDC(w);
color();
LineTo(d,100,100);
break;
case ROUNDRECT:
d=GetDC(w);
color();
RoundRect(d,890,60,70,300,30,40);
break;
case ELLIPSE:
d=GetDC(w);
color();
Ellipse(d,1000,60,90,500);
break;
case CHORD:
d=GetDC(w);
color();
Chord(d,200,300,800,500,400,500,700,300);
break;
case POLYGON:
d=GetDC(w);
color();
Polygon(d,pt,c);
break;
case STAR:
d=GetDC(w);
color();
break;
case BLUE:
c=1;
color();
break;
case RED:
c=2;
color();
break;
case GREEN:
c=3;
color();
break;
}
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(w,x,y,z);
break;
}
return 0L;
}
void color()
{
switch(c)
{
case 1:
hp=CreatePen(PS_SOLID,3,RGB(0,0,250));
SelectObject(d,hp);
break;
case 2:
hp=CreatePen(PS_SOLID,3,RGB(250,0,0));
SelectObject(d,hp);
break;
case 3:
hp=CreatePen(PS_SOLID,3,RGB(0,250,0));
SelectObject(d,hp);
break;
default:
hp=CreatePen(PS_SOLID,3,RGB(0,0,250));
break;
}
}