Write a VC++   Window Program to Create Filled Rectangle and Circle on Alternate Left Click.New Figure Should Not Erase the Previous One.If User Clicks Inside any Figure a Mistake Box Should Display





LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;

HRGN hrgn;
HBRUSH hbr;
static int x1,y1,f;
static POINT pt;
static RECT r1;

static int res[50][2];
static int i=1,j=1,k=1;

switch (message)
{
case WM_LBUTTONDOWN:
hdc=GetDC(hWnd);
x1=LOWORD(lParam);
y1=HIWORD(lParam);

res[i][1]=x1;
res[i][2]=y1;
i++;

hbr=CreateSolidBrush(RGB(rand()%255,rand()%255,rand()%255));
SelectObject(hdc,hbr);
switch(f)
{
case 0:SetRect(&r1,x1,y1,x1+100,y1+100);
FillRect(hdc,&r1,hbr);
f++;
break;
case 1:hrgn=CreateEllipticRgn(x1,y1,x1+100,y1+100);
FillRgn(hdc,hrgn,hbr);
f=0;
break;
}
break;
case WM_RBUTTONDOWN:
hdc=GetDC(hWnd);
for(k=1;k<=50;k++)
{
pt.x=LOWORD(lParam);
pt.y=HIWORD(lParam);

r1.left=res[k][1];
r1.top=res[k][2];
r1.right=res[k][1]+100;
r1.bottom=res[k][2]+100;

if(PtInRect(&r1,pt))
{
MessageBox(hWnd,"Sorry You Click Inside the Rect","Mistake Box",0);
break;
}
}

break;
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
   }
   return 0;
}

Comments

Popular posts from this blog

Uploading Image to Sql Server Image Datatype in asp.net using fileupload Control

Get Running Sum of Query SQL Query