教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> 论文> 其他论文> 用C语言实现按钮新技术

用C语言实现按钮新技术

上传者:网友
|
翻新时间:2023-08-05

用C语言实现按钮新技术

用C语言实现按钮新技术 用C语言实现按钮新技术 用C语言实现按钮新技术

一、按钮显示原理

按钮一般有按下和弹起两种状态,在3D studio中按钮也有这两种状态,Windows中虽然看到按钮虽是弹起的,但细心的用户不难发现,当选中按钮时,它有短暂的按下状态。实际上,它的原理很简单,其实是利用改变按钮边框的颜色引起人视觉上的错觉而达到立体效果,让人们感到屏幕上真有凸起和凹下的按钮一样,如下图:

@@T5S11500.GIF;图1@@在程序应用中,设置某一按钮时,显示图1的状态,再选中这个按钮时,则显示出图2的状态,经过短暂的延时后,恢复到图1的状态,给用户的感觉是按钮被按下后又弹起。在Windows中的按钮就是这样的,3D studio中的部分按钮当被选中时,只显示图2,这时用户可以很清晰地看到凹下的按钮。

二、程序实现

主要包括按钮结构的意义和与它有关的几个函数。

1.结构定义typedef struet Button Def{

short X1;

short Y1;

short X2;

short Y1;

} button为了程序需要,须定义几个常用的量。

#define START-X bt→X1

#define START-Y bt→Y1

#define END-X bt→X2

#define END-Y bt→Y2

#define Grap 1(Grap为按钮边框的宽度)

#define Button White 0x0f

#define Button Black 0x00

2.函数定义START-X=X1;

START-Y=Y1;

END-X=X2;

END-Y=Y2;

(2)Void Release Button(button *bt)

该函数显示按钮弹起时的状态。

(3)Put Down Button(button *bt)该函数显示按钮按下时的状态。

下面列出了以上函数用于定义按钮,显示按钮弹起,按下状态的程序,这个程序在屏幕上显示7个按钮,按下1~7个数字后就弹起某个按钮,非常方便,需要弹起某个数字就按哪个数字,特别需要指出的是,当Gsap大一些时,每个按钮,就如同键盘上的键一样,立体感很强,有兴趣的读者可以实践操作一下,并把这种简明易懂的技术用之于工作,以提高工作效率。

button.c

#include<graphics.h>

#include<conio.h>

#include<alloc.h>

#include<stdio.h>

#include<process.h>

#include"button.h"

#define START-X bt->x1

#define START-Y bt->y1

#define END-X bt->x2

#define END-Y bt->y2

#define Grap 1

#defile ScreenBkColor 2

#define release-color 7

#define put-color 3

#define ButtonWhite 0x0f

#define ButtonBlack 0x00

#define delay 50000

#define dis 10

void ButtonDefine (button *bt.shout.short.short.short);

void ReleaseButton(button *bt);

void PutDownButton(button *bt);

void delay-time(long int);

main()

{

int gdriver=DETECT.gmode=VGAHI:int ch;

initgraph(&gdriver,&gmode,"d:tc");

setcolor(ScreenBkColor);

setbkcolor

(2);

clrscr();

ButtonDefine(but,50,50,600,400);

putDownButton(but);ButtonDefine(but2,200+dis,200,250+dis,2

50);

ButtonDefine(but3,250+2*dis,200,300+2*dis,2

50);

ButtonDefine(but4,300+3*dis,200,350+3*dis,2

50);

ButtonDefine(but5,350+4*dis,200,400+4*dis,2

50);

ButtonDefine(but6,400+5*dis,200,450+5*dis,2

50);

ButtonDefine(but7,450+6*dis,200,500+6*dis,2

50);

while(ch!=

2

7)

{

switch(ch) }

case'1':

ReleaseButton(but

1);break;

case'2':

ReleaseButton(but

2);break;

case'3':

ReleaseButton(but

3);break;

case'4':

ReleaseButton(but

4);break;

case'5':

ReleaseButton(but

5);break;

case'6':

ReleaseButton(but

6);break;

case'7':

ReleaseButton(but

7);break;

}

ch=getch();

if(ch==

2

7)

break;

switch(ch)

{

case'1':

PutDownButton(but

1);break;

case'2':

PutDownButton(but

2);break;

case'3':

PutDownButton(but

3);break;

case'4':

PutDownButton(but

4);break;

case'5':

PutDownButton(but

5);break;

case'6':

PutDownButton(but

6);break;

case'7':

PutDownButton(but

7);break;

}

delay-time(delay);

}

closegraph():

return 0;

}{

START-X=x1;

START-Y=y1;

END-X=x2;

END-Y=y2;

}

void ReleaseButton(button *bt)

{

int i,j;

setcolor

(7);

setfillstyle(1,

7);

bar(START-X,START-Y,END-X,END-Y);

setcolor(Button White);

setfillstyle(1,

7);

bar(START-X+Grap,START-Y+Grap,END-X-Grap,END-Y-Grap);

setcolor

(1

5);

for(j=0;j<=Grap;j++)

{

line(START-X,j+START-Y,END-X-j,j+STAT-Y);

}

for(i=0,i<=Grap;j++)

{

line(START-X+i,START-Y+Grap,START-X+i,END-Y-i);

}

setcolor(ButtonBlack);

for(j=0;j<Grap;j++)

}

line(END-X,j+END-Y-Grap,START-X+Grap-j,j+END-Y-Grap);

}

for(i=0,i<Grap;i++)

{

line(i+END-X+Grap,END-Y-Grap,i+END+X-Grap,START-Y+Grap-i);

}

return;

}

void PutDownButton(button *bt)

}

int i,j;

setcolor(put-color);

setfillstyle(1,put-color);

bar(START-X+Grap,START-Y+Grap,END-X-Grap,END-Y-Grap);

setcolor(ButtonBlack);

for(j=0;j<=Grap;j++)

{

line(START-X,j+START-Y,END-X-j,j+START-Y);

;}

for (i=0;i<Garp;i++)

{

line (START-X+i,START-Y+Grap,START-X+i,END-Y-i);

setcolor

(1

5);

for(j=0,j<=Grap;j++)

{

line(END-X,j+END-Y-Grap,START-X+Grap-j,j+END-Y-Grap);

}

for(i=0;i<=Grap;i++)

{

line(i+END-X-Grap,END-Y-Grap,i+END-X-Grap,START-Y+Grap-i);

}

}

void delay-time(long int i)

{

i=0;

while(i<=delay)

i++;

}

button.h

typedef struct ButtonDef

{ short x1;

short y1;

short x2;

short y2;

}button;

下载文档

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

网友最新关注

读《我的长生果》有感
国庆乐事
我的"好朋友"
我的小秋千
二十年后回家乡
国庆见闻
一个爱吃的人
鲸的自述
20年后的家乡
我的恒B
谈鬼色变
童年趣事
妈妈的衣柜变了样
秋思
谈鼠色变
2011年春季学期学校工作计划
2011年小学实验室工作计划
2011年春季学校工作计划
2011年学院工作要点
创建“健康校园”工作计划
加强未成年人思想道德教育工作行动计划
2011年春季学期毕业班工作思路及实施对策
2011年上半年学校教导处工作计划
中学2011年工作计划
中学教职工政治理论学习计划
2011年度学校安全工作计划
文明单位创建工作计划
2011年学校工作要点
学校2011年工作计划
2010—2011学年下学期学校工作计划
关于司法改革中“相对合理主义”(1)
注水工艺技术研究
论析化工案例分析及其在教学培训中的应用
英语影片字幕的翻译
中国财政体制变革与国有企业改革相互关系的研究
论市场经济下的依法理财
二氧化钛的制备及其在降解Cr(VI)中的研究
关于几种脱毒小薯培养基质的比较研究
罚金刑问题和对策(1)
必修教材中栏目与学生非智力因素培养的探索(一)
英语移就形容词及其翻译
应用“思维导图”提高化学学习效率
邓小平财政管理思想论析
浅谈美国1787年宪法的成功之处(1)
抗日战争时期陕甘宁边区的财政来源
《金色的鱼钩》教学实录1
《母爱》及练习五。
《珍珠鸟》教学实录3
《金色的鱼钩》教学实录2
《珍珠鸟》教学实录4
《“精彩极了”和“糟糕透了”》教学实录(3篇)3
《珍珠鸟》教学实录2
《金色的鱼钩》教学实录3
《“精彩极了”和“糟糕透了”》教学设计之三
《狼牙山五壮士》疑导式教案设计
《珍珠鸟》教学实录5
《“精彩极了”和“糟糕透了”》教学实录(3篇)1
《草原》教学实录+练习+说课设计2
《“精彩极了”和“糟糕透了”》教学实录(3篇)2
《狼牙山五壮士》写法引读教案设计