教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> 论文> 其他论文> 用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;

下载文档

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

网友最新关注

我家的猫
成长中的一件事
从《乌塔》想到的7
公园的一角
我的发现
从《乌塔》想到的1
秋色花园
秋天的流花湖公园
花花的故事
从《乌塔》想到的10
暑假郊外秋游
蝈蝈儿讲的故事
从《乌塔》想到的8
从《乌塔》想到的
观察日记——小金鱼
试论房地产高层住宅抗震施工质量控制
房屋建筑的模板工程最忌讳什么
楼地面构造常识问答
地产开发详细流程 开发人员必看
设计与施工中若干常见病害的防治对策
房地产开发报建流程及潜规则指南
民用建筑构造要点
建筑专业施工图纸核查要点
悬挑脚手架 与落地脚手架区别
施工员在施工现场要肩负多少责任?
饰面装修常识问答
建立学习型施工单位之读书策略建议
基础构造常识问答
高层建筑施工管理杂谈
山东省住宅工程质量通病专项治理
《葡萄沟》同步作文 家乡的葡萄
《日月潭》 整体阅读感知
《难忘的泼水节》 重点问题探究
《难忘的泼水节》 范文习作
《难忘的泼水节》 相关介绍
《难忘的泼水节》 考点练兵1
《难忘的泼水节》 整体阅读感知
《日月潭》 重点问题探究
《难忘的泼水节》 教师语录
《日月潭》 作家作品及写作背景
《难忘的泼水节》 考点练兵2
《难忘的泼水节》 重难点分析
《难忘的泼水节》 知识点精析
《日月潭》 知识点精析
《难忘的泼水节》 写作指导及训练素材