#include<dos.h>
#include <stdio.h>
#include <conio.h>
#include <process.h>
#include<graphics.h>
#include<time.h>
#include<math.h>
#define t 100
union REGS i,o;
initmouse()
{
i.x.ax=0;
int86(0x33,&i,&o);
return(o.x.ax);
}
showmouseptr()
{
i.x.ax=1;
int86(0x33,&i,&o);
return(0);
}
hidemouseptr()
{
i.x.ax=2;
int86(0x33,&i,&o);
return(0);
}
restrictmouseptr(int x1,int y1, int x2, int y2)
{
i.x.ax=7;
i.x.cx=x1;
i.x.dx=x2;
int86(0x33,&i,&o);
i.x.ax=8;
i.x.cx=y1;
i.x.dx=y2;
int86(0x33,&i,&o);
return(0);
}
getmousepos(int *button, int *x, int *y)
{
i.x.ax=3;
int86(0x33,&i,&o);
*button=o.x.bx;
*x=o.x.cx;
*y=o.x.dx;
return(0);
}
//*************************************************************************
void ClearWin(int wx1,int wy1,int wx2,int wy2,int color)
{
setfillstyle(1,color);
bar(wx1,wy1,wx2,wy2);
}
//*************************************************************************
void menu_hien()
{ int a , b;
a = 45; b = 65;
setcolor(12);
rectangle(20,a,120,b); bar(21,a+1,119,b-1);
setcolor(11);
settextjustify(CENTER_TEXT,CENTER_TEXT);
setcolor(4);
outtextxy((20+120)/2,(a+b)/2,"Ham Bac 1");
delay(t);
setcolor(12);
rectangle(20,a+20,120,b+20); bar(21,a+21,119,b+19);
setcolor(11);
settextjustify(CENTER_TEXT,CENTER_TEXT);
setcolor(4);
outtextxy((20+120)/2,(a+20+b+20)/2,"Ham Cosin");
delay(t);
setcolor(12);
rectangle(20,a+40,120,b+40); bar(21,a+41,119,b+39);
setcolor(11);
settextjustify(CENTER_TEXT,CENTER_TEXT);
setcolor(4);
outtextxy((20+120)/2,(a+40+b+40)/2,"Ham TP 4");
delay(t);
setcolor(12);
rectangle(20,a+60,120,b+60); bar(21,a+61,119,b+59);
setcolor(11);
settextjustify(CENTER_TEXT,CENTER_TEXT);
setcolor(4);
outtextxy((20+120)/2,(a+60+b+60)/2,"EXIT");
}
//********************//
void menu_an()
{ int a , b ;
a = 45; b = 65;
setcolor(2);
rectangle(20,a,120,b);
setcolor(2);
settextjustify(CENTER_TEXT,CENTER_TEXT);
setcolor(2);
outtextxy((20+120)/2,(a+b)/2,"Ham Bac 1");
delay(t);
setcolor(2);
rectangle(20,a+20,120,b+20);
setcolor(2);
settextjustify(CENTER_TEXT,CENTER_TEXT);
setcolor(2);
outtextxy((20+120)/2,(a+20+b+20)/2,"Ham Cosin");
delay(t);
setcolor(2);
rectangle(20,a+40,120,b+40);
setcolor(2);
settextjustify(CENTER_TEXT,CENTER_TEXT);
setcolor(2);
outtextxy((20+120)/2,(a+40+b+40)/2,"Ham TP 4");
delay(t);
setcolor(2);
rectangle(20,a+60,120,b+60);
setcolor(2);
settextjustify(CENTER_TEXT,CENTER_TEXT);
setcolor(2);
outtextxy((20+120)/2,(a+60+b+60)/2,"EXIT");
}
//******************************************************************
void tille()
{
int maxx;
maxx = getmaxx();
setcolor(5);
rectangle(0,0,maxx-2,18);
setfillstyle(1,9);
bar(1,1,maxx-3,17);
setcolor(15);
settextjustify(CENTER_TEXT,CENTER_TEXT);
setcolor(4);
outtextxy((maxx)/2,(18)/2,"*** Chuong Trinh Ve Do Thi ***");
}
//******************************************************************
void menu()
{
setcolor(14);
rectangle(20,20,100,40);
setfillstyle(1,9);
bar(21,21,99,39);
setcolor(15);
settextjustify(CENTER_TEXT,CENTER_TEXT);
setcolor(4);
outtextxy((20+100)/2,(20+40)/2,"VE DO THI");
}
//*******************//
void menu_click()
{
setcolor(1);
rectangle(20,20,100,40);
setcolor(14);
line(21,40,99,40);
setfillstyle(1,9);
bar(21,21,99,39);
setcolor(5);
settextjustify(CENTER_TEXT,CENTER_TEXT);
setcolor(4);
outtextxy((20+100)/2,(20+40)/2,"VE DO THI");
}
//************************************************************************
void menu_bac1()
{
int a , b;
a = 45; b = 65;
setcolor(15);
rectangle(20,a,120,b);
setcolor(11);
settextjustify(CENTER_TEXT,CENTER_TEXT);
setcolor(4);
outtextxy((20+120)/2,(a+b)/2,"Ham Bac 1");
}
//**//
void menu_bac10()
{
int a , b;
a = 45; b = 65;
setcolor(12);
rectangle(20,a,120,b);
setcolor(11);
settextjustify(CENTER_TEXT,CENTER_TEXT);
setcolor(4);
outtextxy((20+120)/2,(a+b)/2,"Ham Bac 1");
}
//*****************//
void menu_cos()
{
int a , b;
a = 45; b = 65;
setcolor(15);
rectangle(20,a+20,120,b+20);
setcolor(11);
settextjustify(CENTER_TEXT,CENTER_TEXT);
setcolor(4);
outtextxy((20+120)/2,(a+20+b+20)/2,"Ham Cosin");
}
//**//
void menu_cos0()
{
int a , b;
a = 45; b = 65;
setcolor(12);
rectangle(20,a+20,120,b+20);
setcolor(11);
settextjustify(CENTER_TEXT,CENTER_TEXT);
setcolor(4);
outtextxy((20+120)/2,(a+20+b+20)/2,"Ham Cosin");
}
//******************//
void menu_bac4()
{
int a , b;
a = 45; b = 65;
setcolor(15);
rectangle(20,a+40,120,b+40);
setcolor(11);
settextjustify(CENTER_TEXT,CENTER_TEXT);
setcolor(4);
outtextxy((20+120)/2,(a+40+b+40)/2,"Ham TP 4");
}
//**//
void menu_bac40()
{
int a , b;
a = 45; b = 65;
setcolor(12);
rectangle(20,a+40,120,b+40);
setcolor(11);
settextjustify(CENTER_TEXT,CENTER_TEXT);
setcolor(4);
outtextxy((20+120)/2,(a+40+b+40)/2,"Ham TP 4");
}
//*******************//
void menu_exit()
{
int a , b;
a = 45; b = 65;
setcolor(15);
rectangle(20,a+60,120,b+60);
setcolor(11);
settextjustify(CENTER_TEXT,CENTER_TEXT);
setcolor(4);
outtextxy((20+120)/2,(a+60+b+60)/2,"EXIT");
}
//**//
void menu_exit0()
{
int a , b;
a = 45; b = 65;
setcolor(12);
rectangle(20,a+60,120,b+60);
setcolor(11);
settextjustify(CENTER_TEXT,CENTER_TEXT);
setcolor(4);
outtextxy((20+120)/2,(a+60+b+60)/2,"EXIT");
}
//***//
void x_exit()
{
int maxx;
maxx = getmaxx();
setcolor(15);
rectangle(maxx-19,1,maxx-3,17);
setfillstyle(1,4);
bar(maxx-18,2,maxx-4,16);
setcolor(15);
settextjustify(CENTER_TEXT,CENTER_TEXT);
setcolor(15);
outtextxy((maxx-18+maxx-3)/2,(18)/2,"X");
}
//************************************************************************
//************************************************************************
main()
{
int gd=DETECT,gm,maxx,maxy,x,y,button,prevx,prevy;
initgraph(&gd,&gm,"D:\\tc\\bgi");
maxx=getmaxx();
maxy=getmaxy();
rectangle(0,0,maxx,maxy);
setviewport(1,0,maxx-1,maxy-1,0);
tille();
x_exit();
menu();
setbkcolor(2);
if(initmouse()==0)
{
closegraph();
restorecrtmode();
printf("Mouse Driver Not Loaded"); exit(1);
}
restrictmouseptr(1,1,maxx-1,maxy-1);
showmouseptr();
while(kbhit()) getch();
while(!kbhit())
{
getmousepos(&button,&x,&y);
if((button&1)==1)
{
hidemouseptr();
prevx=x;
prevy=y;
while((button&1)==1)
{
setcolor(4);
line(prevx,prevy,x,y);
prevx=x;
prevy=y;
getmousepos(&button,&x,&y);
}
showmouseptr();
}
while(!kbhit())
{
getmousepos(&button,&x,&y);
if ((button&1)==1)
{
if ((x > 20 && x < 100) && (y > 20 && y < 40))
{
menu_click();
menu_hien();
lable_1:
while(!kbhit()) // tiep o menu thu 2//**********
{
getmousepos(&button,&x,&y);
if ((button&1)==1)
{
if ((x > 20 && x < 120) && (y > 45 && y < 65))
{
ClearWin(120,42,maxx,maxy,2);
menu_cos0();
menu_bac40();
menu_exit0();
menu_bac1();
}
if ((x > 20 && x < 120) && (y > 65 && y < 85))
{
ClearWin(120,42,maxx,maxy,2);
menu_bac10();
menu_bac40();
menu_exit0();
menu_cos();
}
if ((x > 20 && x < 120) && (y > 85 && y < 105))
{
ClearWin(120,42,maxx,maxy,2);
ClearWin(140,200,maxx-20,maxy-20,7);
menu_bac10();
menu_cos0();
menu_exit0();
menu_bac4();
}
if ((x > 20 && x < 120) && (y > 105 && y < 125))
{
ClearWin(140,200,maxx-20,maxy-20,8);
menu_bac10();
menu_cos0();
menu_bac40();
menu_exit();
exit(1);
}
if ((x < 20 || x > 120) || (y < 45 || y > 125))
{
ClearWin(0,42,maxx,maxy,2);
menu();
break;
}
}
}
}
if (((x > 20) || (x < 100)) || ((y > 20) || (y < 40)))
menu_an();
if ((x > (maxx-19) && x < (maxx-3))&&(y > 1 && y <17))
{
exit(1);
}
}
}
}
getch();
return(0);
}