| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 436 人关注过本帖
标题:刚才忘传了。
只看楼主 加入收藏
smc1986
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-11-16
收藏
 问题点数:0 回复次数:6 
刚才忘传了。

#include <graphics.h>
#include <stdio.h>
#include<conio.h>
#include<dos.h>
#include<stdlib.h>
#define NO 0
#define YES 1
#define NONE -1
#define MAX_MENU 7
int X,Y;
int Selection;
int button,x,y;
void *p;
size_t area;
struct MENU
{int x;
int y;
int x1;
int y1;
unsigned char Active[MAX_MENU];
char *head;
};
int MouseOn(struct MENU *t);
void Process();
void Xorbar(int sx,int sy,int ex,int ey,int c);
void Show();
void Hide();
void Status();
struct MENU File={200,110,250,130};
struct MENU Edit={295,110,345,130};
struct MENU Help={390,110,440,130};
struct MENU Close={600,10,620,30};
struct MENU Neeraj={380,300,460,315};

void main()
{
int gd,gm;
detectgraph(&gd,&gm);
initgraph(&gd,&gm,"");
Selection=NONE;
for(gd=0;gd<MAX_MENU;gd++)
{File.Active[gd]=YES;
Edit.Active[gd]=YES;
Help.Active[gd]=YES;
Close.Active[gd]=YES;
}
File.head="[File Menu]";
Edit.head="[Edit Menu]";
Help.head="[Help Menu]";
Close.head="[Exit]";
area=imagesize(0,0,150,150);
p=malloc(area);
if(p==NULL)
{closegraph();
restorecrtmode();
printf("Not Enough Memory !\n try to reduce the area used.\n");
exit(1);
}setfillstyle(1,7);
bar(0,0,640,480);
X=2;Y=2;
Process();
End();
closegraph();
printf("GUI-MENUS By Neeraj Sharma - n21@indiatimes.com\n");
getch();
}
void Process()
{char *fm[]={"New","Open","Save","Save as","Exit"};
char *em[]={"Undo","Cut","Copy","Paste","Delete","Select All"};
char *hm[]={"Help Topics","About Menus"};
char KEY;
Win(140,100,500,140);
DrawBtn(&File,"File");
DrawBtn(&Edit,"Edit");
DrawBtn(&Help,"Help");
settextstyle(0,0,0);
outtextxy(Close.x+7,Close.y+7,"x");
Comments();
Show();
File.Active[3]=NO;
Edit.Active[0]=NO;
while(1)
{
if(kbhit())
{KEY=getch();
if(KEY==27|| KEY==45)
break;
}
Status();
if(button==1)
{if(MouseOn(&Close))
break;
if(MouseOn(&File))
{PullMenuDown(fm,5,&File);
if(Selection==NONE)
Msg("No Selection !");
else
Msg(fm[Selection]);
if(Selection==4)
break;
}
if(MouseOn(&Edit))
{
PullMenuDown(em,6,&Edit);
if(Selection==NONE)
Msg("No Selection !");
else
Msg(em[Selection]);
}
if(MouseOn(&Help))
{
PullMenuDown(hm,2,&Help);
if(Selection==NONE)
Msg("No Selection !");
else
Msg(hm[Selection]);
if(Selection==1)
Msg("*Programming By NEERAJ SHARMA *");
}
}
else
{
if(MouseOn(&File)) Hlight(&File);
if(MouseOn(&Edit)) Hlight(&Edit);
if(MouseOn(&Help)) Hlight(&Help);
if(MouseOn(&Close)) Hlight(&Close);
if(MousseOn(&Neeraj))
{
Msg("Hello,everyone");
while(MouseOn(&Neeraj))
{
status();
if(button!=0) break;
if(kbhit()) break;
}
Msg(" ");
}
}
}
Msg(":: Bye Bye ::");
}

DrawBtn(struct MENU *tm,char *txt)
{setcolor(0);
settextstyle(2,0,4);
outtextxy(tm->x+15,tm->y+4,txt);
}

Hlight(struct MENU *t)
{

winp(t,0);
Msg(t->head);
while(MouseOn(t))
{
Status();
if(button!=0) break;
if(kbhit()) break;
}
setcolor(7);
Hide();
rectangle(t->x,t->y,t->x1,t->y1);
Msg(" ");
Show();
}


winp(struct MENU *t,int state)
{
Hide();
if(state==1)
{
setcolor(0);
line(t->x,t->y,t->x,t->y1);
line(t->x,t->y,t->x1,t->y);
setcolor(15);
line(t->x1,t->y,t->x1,t->y1);
line(t->x,t->y1,t->x1,t->y1);
}
else
{
setcolor(15);
line(t->x,t->y,t->x,t->y1);
line(t->x,t->y,t->x1,t->y);
setcolor(0);
line(t->x1,t->y,t->x1,t->y1);
line(t->x,t->y1,t->x1,t->y1);
}
Show();
}


Win(int sx,int sy,int ex,int ey)
{
Hide();
setfillstyle(1,7);
bar(sx,sy,ex,ey);
setcolor(15);
line(sx,sy,sx,ey);
line(sx,sy,ex,sy);
setcolor(0);
line(ex,sy,ex,ey);
line(sx,ey,ex,ey);
Show();
}

PullMenuDown(char *H[],int n,struct MENU *tm)
{
int i;
i=n*20;
Push(tm);
Hide();
getimage(tm->x+1,tm->y1+2,tm->x+100,tm->y1+i+5,p);
Win(tm->x+1,tm->y1+2,tm->x+100,tm->y1+i+5);
setcolor(0);
settextstyle(2,0,4);
for(i=0;i<n;i++)
{
if(!tm->Active[i])
{
setcolor(15);outtextxy(tm->x+15,tm->y1+9+i*20,H[i]);
setcolor(0);
outtextxy(tm->x+14,tm->y1+8+i*20,H[i]);
}
else
outtextxy(tm->x+14,tm->y1+8+i*20,H[i]);
}
Show();
while(button==1) Status();
HandleMenu(n,tm);
}

PullMenuUp(struct MENU *tm)
{
int i;
Hide();
putimage(tm->x+1,tm->y1+2,p,COPY_PUT);
Show();
Up(tm);
}


union REGS i,o;
struct SREGS ss;
void Show()
{i.x.ax=1;
int86(0x33,&i,&o);
}

void Hide()
{
i.x.ax=2;
int86(0x33,&i,&o);
}

void Status()
{
i.x.ax=3;
int86(0x33,&i,&o);
button=o.x.bx;
x=o.x.cx;
y=o.x.dx;
}




2006-11-20 20:55
BOY→杰
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-11-16
收藏
得分:0 
楼上着个程序是实现什么功能啊,小弟请教下

2006-11-20 21:00
天下云
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2006-11-6
收藏
得分:0 
那确实

就这么一版代码


啥意思啊?

2006-11-20 21:03
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 
没有写少,这个应该在图像方面。

谁有强殖装甲第二部,可以Q我460054868
2006-11-20 21:08
夜狼
Rank: 1
等 级:新手上路
帖 子:129
专家分:0
注 册:2006-11-20
收藏
得分:0 

恩,
这是编个写字板界面


2006-11-20 21:20
夜狼
Rank: 1
等 级:新手上路
帖 子:129
专家分:0
注 册:2006-11-20
收藏
得分:0 
我就是smc1986
这个程序没法调试。
在VC下编译说时不能找到graphics.h这个头文件。

2006-11-20 21:22
heamer_c
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2006-7-18
收藏
得分:0 
是啊,我曾经也做过画图方面的段子,可是也是这个问题:“在VC下编译说时不能找到graphics.h这个头文件”高手指点....

我就是程序,程序就是我,我还能退出程序吗?!
2006-11-20 21:29
快速回复:刚才忘传了。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020748 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved