用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;
邓小平以法制权思想的丰富和发展我国宪法明文规定中华人民共和国的一切权力属于人民,但民主政治在运作上是代议民主或间接民主,这就意味着权力的所有与权力的行使之间存在着某种程度的分离。这种分离可能引起权力失控,使得国
依法治国无产阶级专政理论的丰富和发展论文关键词依法治国无产阶级专政人治论文提要社会主义国家坚持无产材礴受专政关健要解决好民主问题,依法治国。张调法律至上。以法律来规范权力分配,规范和制约权力行为。逐步实现社会主义民主
党的第三代领导集体对邓小平发展理论的丰富和发展论文关键词第三代领导集体发展理论丰富和发展论文摘要在新的历史条件下,党的第三代领导集体把发展作为党执政兴国的第一要务,丰富和发展了邓小平的发展理论,对我国今后的发展有着重要的指导意
以基础理论研究推进政治学的发展中国的政治学经过近十几年的发展,到今天已经达到相当的水平。其中的原因是很多的,但社会的进步发展不断对政治学提出新的要求是最重要的原因。这也说明一个学科只有满足社会的需要才有生命力。
关于一国两制的法哲学思考随着香港澳门的陆续回归以及海峡两岸统一大势的不可抗逆,一种罕见的政治法律现象就将呈现在世人面前,因为一国两制的国家结构必然导致一国两法(一国之内两种社会性质的法律制度并存)和出现多
论政府的开放性摘要传统公共行政理论中的政府具有极大的封闭性。在公共管理运动的背景下,人们对政府的认识发生了深刻的变化。开放性是政府文明的标志,也是政治文明的标志。作为民主政治中的一种基本理念,它
霸权的兴衰及其理论启示一霸权兴衰的辩证紧张在世界政治中,衰落是个十分复杂的概念。它可能是绝对的,即是对自身的衡量结果也可能是相对的,它是与外部力量比较的结果。一个国家的衰落,既可能是其外部力量不断强大导
公民社会理念的由来及现实意义的思考内容提要公民社会理念(ideaofcivilsociety)是在西方社会中孕生并发育起来的,它长期为西方学术界所重视,在马恩著作中也经常被使用。公民社会于近一二十年间的复兴与拓深,
近代中国民权思想演进轨迹探因内容提要近代中国民权思想是鸦片战争后日趋严重的民族危机下的产物,亦是中西文化碰撞的结果,它既具有回应救亡御侮历史重任的爱国品性,又具有吸收和改造中西文化精神的属性。它的演变历程对应
什么样的公共利益才是合法的?三论私权优先原则内容提要一切没有边界的存在都是不合法的存在。公共利益的合法性边界取决于三个条件规定内容的公共性范围的确定性程序的正当性。公共利益相对于私权优先,是可以,不是必须。关键词公共性确定性
政治判断如何可能?简述汉纳鄂兰晚年作品的关怀汉纳鄂兰(19061975)在一九五一年出版极权主义的根源(TheOriginsofTotalitarianism),开始成为政治学界瞩目的对象。其后人之处境(TheHumanCo
幼儿主动学习理念指导下的入园准备论文大多数人都认为幼儿入园焦虑是正常现象,经过一段时间的适应,分离焦虑会自然消退。但是,作为专业的幼儿教育者,面对这样的状况,我们深深地知道我们要做的不仅仅是想一些办法或策略应对或减轻
如何培养幼儿的合作能力论文摘要幼儿是国家的花朵,是国家未来发展的储备型人才。幼儿园作为幼儿学习的地方,在幼儿能力教育中承载着十分重大的任务,当前合作能力是幼儿能力培养的重点。因此,文章从游戏美术表演三个方面
食品专业就业指导论文应届大学生的数量呈现出逐年递增的态势,就业形势很不乐观。就业指导对于大学生是至关重要的,下面是小编整理的食品专业就业指导论文,希望对大家有帮助!食品专业就业指导论文摘要本文分析了某
大数据环境下信息管理专业人才培养模式分析与构建论文2012年教育部颁布教育部关于全面提高高等教育质量的若干意见,要求大力提升人才培养水平增强科学研究能力服务经济社会发展推进文化传承创新,全面提高高等教育质量。国家中长期教育改革和发
进应用题教学方法论文九年义务教育教材不论是编排思路,还是编排体系,都有其独到之处,尤其是关于应用题的编排更具优势。它按照小学数学教学新大纲对应用题内容作了如下调整应用题注意联系学生实际,整数小数应用题
储层多点地质统计学随机建模方法研究论文一引言在油气开发过程中必然会涉及到相关数据测量,测量过程中就会不可避免的出现误差,这些数据误差会给油气地质储层建模带来直接的影响。另外得到确定性的地质变量空间变量模型是不太现实的,
变电站直流电源安全管理方法电科论文1蓄电池组的安全管理(1)阀控式铅酸免维护蓄电池阀控式铅酸免维护蓄电池密封程度高体积较小,放电电流较大,使用寿命较长,因此在变电站直流电源中得到了较为广泛的应用。由于阀控式铅酸免维
规范供应链管理课程内容浅见论文目前供应链管理课程不仅是物流类专业的必修课程,而且也是工商管理类专业的选修课程。如何合理安排供应链管理课程教学内容体系是该课程教学所面临的重要课题。从教学大纲分析入手,归纳总结目前
基于数字化技术的艺术设计教学艺术论文内容摘要设计,作为科学与艺术的复合,是融艺术科学技术和经济于一体的边缘学科。艺术设计教学必须适应社会的发展需要,把艺术与科学紧密地结合起来,把高新技术直接应用到教学实践中去,实现艺
数字技术在广播电视中的作用论文摘要在信息化高速发展的今天,广播电视已经非常普及,是人们娱乐和生活的一部分,与人们的生产生活联系密切,而随着计算机网络的发展和进步,广播电视的发展也面临新的契机,为了提高人们的精神
数字技术在水利施工中的运用论文摘要目前,全球都在兴修水利工程,水利工程的建设也随着时代的发展进入到了快速发展的时期,相应的,水利工程的规模以及工程的难度都在随之而增长,这就需要提高对工程的质量要求提高,其体现在