用C语言实现按钮新技术
用C语言实现按钮新技术用C语言实现按钮新技术用C语言实现按钮新技术
一、按钮显示原理
按钮一般有按下和弹起两种状态,在3Dstudio中按钮也有这两种状态,Windows中虽然看到按钮虽是弹起的,但细心的用户不难发现,当选中按钮时,它有短暂的按下状态。实际上,它的原理很简单,其实是利用改变按钮边框的颜色引起人视觉上的错觉而达到立体效果,让人们感到屏幕上真有凸起和凹下的按钮一样,如下图:
T5S11500。GIF;图1在程序应用中,设置某一按钮时,显示图1的状态,再选中这个按钮时,则显示出图2的状态,经过短暂的延时后,恢复到图1的状态,给用户的感觉是按钮被按下后又弹起。在Windows中的按钮就是这样的,3Dstudio中的部分按钮当被选中时,只显示图2,这时用户可以很清晰地看到凹下的按钮。
二、程序实现
主要包括按钮结构的意义和与它有关的几个函数。
1。结构定义typedefstruetButtonDef{
shortX1;
shortY1;
shortX2;
shortY1;
}button为了程序需要,须定义几个常用的量。
defineSTARTXbtX1
defineSTARTYbtY1
defineENDXbtX2
defineENDYbtY2
defineGrap1(Grap为按钮边框的宽度)
defineButtonWhite0x0f
defineButtonBlack0x00
2。函数定义STARTXX1;
STARTYY1;
ENDXX2;
ENDYY2;
(2)VoidReleaseButton(buttonbt)
该函数显示按钮弹起时的状态。
(3)PutDownButton(buttonbt)该函数显示按钮按下时的状态。
下面列出了以上函数用于定义按钮,显示按钮弹起,按下状态的程序,这个程序在屏幕上显示7个按钮,按下17个数字后就弹起某个按钮,非常方便,需要弹起某个数字就按哪个数字,特别需要指出的是,当Gsap大一些时,每个按钮,就如同键盘上的键一样,立体感很强,有兴趣的读者可以实践操作一下,并把这种简明易懂的技术用之于工作,以提高工作效率。
button。c
includelt;graphics。hgt;
includelt;conio。hgt;
includelt;alloc。hgt;
includelt;stdio。hgt;
includelt;process。hgt;
includebutton。h
defineSTARTXbtgt;x1
defineSTARTYbtgt;y1
defineENDXbtgt;x2
defineENDYbtgt;y2
defineGrap1
defileScreenBkColor2
definereleasecolor7
defineputcolor3
defineButtonWhite0x0f
defineButtonBlack0x00
definedelay50000
definedis10
voidButtonDefine(buttonbt。shout。short。short。short);
voidReleaseButton(buttonbt);
voidPutDownButton(buttonbt);
voiddelaytime(longint);
main()
{
intgdriverDETECT。gmodeVGAHI:intch;
initgraph(amp;gdriver,amp;gmode,d:tc);
setcolor(ScreenBkColor);
setbkcolor
(2);
clrscr();
ButtonDefine(but,50,50,600,400);
putDownButton(but);ButtonDefine(but2,200dis,200,250dis,2
50);
ButtonDefine(but3,2502dis,200,3002dis,2
50);
ButtonDefine(but4,3003dis,200,3503dis,2
50);
ButtonDefine(but5,3504dis,200,4004dis,2
50);
ButtonDefine(but6,4005dis,200,4505dis,2
50);
ButtonDefine(but7,4506dis,200,5006dis,2
50);
while(ch!
2hr7)
{
switch(ch)}
case1:
ReleaseButton(but
1);break;
case2:
ReleaseButton(but
2);break;
case3:
ReleaseButton(but
3);break;
case4:
ReleaseButton(but
4);break;
case5:
ReleaseButton(but
5);break;
case6:
ReleaseButton(but
6);break;
case7:
ReleaseButton(but
7);break;
}
chgetch();
if(ch
2hr7)
break;
switch(ch)
{
case1:
PutDownButton(but
1);break;
case2:
PutDownButton(but
2);break;
case3:
PutDownButton(but
3);break;
case4:
PutDownButton(but
4);break;
case5:
PutDownButton(but
5);break;
case6:
PutDownButton(but
6);break;
case7:
PutDownButton(but
7);break;
}
delaytime(delay);
}
closegraph():
return0;
}{
STARTXx1;
STARTYy1;
ENDXx2;
ENDYy2;
}
voidReleaseButton(buttonbt)
{
inti,j;
setcolor
(7);
setfillstyle(1,
7);
bar(STARTX,STARTY,ENDX,ENDY);
setcolor(ButtonWhite);
setfillstyle(1,
7);
bar(STARTXGrap,STARTYGrap,ENDXGrap,ENDYGrap);
setcolor
(1
5);
for(j0;jlt;Grap;j)
{
line(STARTX,jSTARTY,ENDXj,jSTATY);
}
for(i0,ilt;Grap;j)
{
line(STARTXi,STARTYGrap,STARTXi,ENDYi);
}
setcolor(ButtonBlack);
for(j0;jlt;Grap;j)
}
line(ENDX,jENDYGrap,STARTXGrapj,jENDYGrap);
}
for(i0,ilt;Grap;i)
{
line(iENDXGrap,ENDYGrap,iENDXGrap,STARTYGrapi);
}
return;
}
voidPutDownButton(buttonbt)
}
inti,j;
setcolor(putcolor);
setfillstyle(1,putcolor);
bar(STARTXGrap,STARTYGrap,ENDXGrap,ENDYGrap);
setcolor(ButtonBlack);
for(j0;jlt;Grap;j)
{
line(STARTX,jSTARTY,ENDXj,jSTARTY);
;}
for(i0;ilt;Garp;i)
{
line(STARTXi,STARTYGrap,STARTXi,ENDYi);
setcolor
(1
5);
for(j0,jlt;Grap;j)
{
line(ENDX,jENDYGrap,STARTXGrapj,jENDYGrap);
}
for(i0;ilt;Grap;i)
{
line(iENDXGrap,ENDYGrap,iENDXGrap,STARTYGrapi);
}
}
voiddelaytime(longinti)
{
i0;
while(ilt;delay)
i;
}
button。h
typedefstructButtonDef
{shortx1;
shorty1;
shortx2;
shorty2;
}button;
低温等离子体协同催化净化废气的研究进展摘要低温等离子体催化协同净化技术是一项全新的处理技术,具有能耗低,处理效率高等优点,在处理VOCs氮氧化物机动车尾气方面都有着广阔的发展前景,但实际应用还很不成熟,需要加大力量进行
加热炉PLC控制系统设计选题背景及意义(一)选题背景及意义随着我国经济的迅速发展,能源短缺已成为制约我国工业发展的重要阻碍,社会各界都对此积极关注。推钢式加热炉是冶金工业的主要耗能设备。如何保证被加热后的金属能够在有效轧制前
镗床电气控制系统(一)摘要本篇文章介绍了自动镗床PLC控制系统设计方案,并且叙述了镗床运行的基本原理PLC的基本原理PLC的工程设计步骤。整个系统采用了一台PLC控制,整个控制系统设一个控制室。利用PL
直流电动机闭环控制系统的开题报告题目背景和意义本设计是根据我院新建电机驱动与控制实验室的设备,利用单片机对直流电动机和交流电动机的控制及各种特性。我重点研究的是直流电动机的闭环控制系统。通过本次设计,使同学顺利完
OMRON公司的C系列P型机对电梯升降控制系统(一)摘要PLC(可编程控制器)作为一种工业控制微型计算机,它以其编程方便操作简单尤其是它的高可性等优点,在工业生产过程中得到了广泛的应用。它应用大规模集成电路,微型机技术和通讯技术的发
基于拓扑图论策略的城市轨道交通信号设备布置方法探究近年来,伴随着我国城市化进程的加快以及经济的高速发展,城市人口快速增长,城市规模日益扩大,许多大城市的地面交通己经无法适应日益增长的客运需求。由于城市轨道交通系统具有快速便捷大运量
铁路信号电缆的维护与管理探析经济的发展势必会拉动铁路事业的不断发展,特别是铁路信号电缆的维护与管理已经成为了铁路事业中最为关键的一项课题。近年来,逐渐发展起来的高速铁路更是在很大程度上给铁路信号的电缆管理与维
浅论铁路信号的过渡施工方案在探讨既有线改造铁路信号施工时,对其特点进行了笼统概括技术创新要求高受外界因素影响大新旧设备转换程序繁杂安全系数高对技术要求高参与人员多管理难度大等。信号过渡施工安全是保证既有线施
城市轨道交通车票车票读写器及终端设备控制系统技术发展1。引言在当今社会的公共服务领域,已经进入到一个以消费者利益为主导的时期,就轨道交通服务行业而言,运营商都要以大众的服务需求和便利为出发点来提供相应的服务。因此,城市轨道交通中出现
关于机器人项目应用于中职机械基础教学的探索机械基础是中职机电专业学生的一门专业基础课,为专业技术课和实训课服务,也是学生职业发展和继续教育不可或缺的基础。本课程理论性强,内容多,难以实施切实有效的创新教学,教学主要采用教师
关于我国机械制造业的现状及发展前景1前言改革开放以来,我国的制造业在各个方面都取得了全面快速的发展,取得了举世瞩目的成就。然而,与发达国家的先进制造技术相比仍然存在着较大的差距。当前,我国的经济发展正处于极速转型阶
值班水手英语听力与会话评估标准修订浅谈一引言根据2012年3月1日起生效的中华人民共和国海船船员适任考试和发证规则1(以下简称11规则)的要求,新的中华人民共和国海船船员适任考试大纲2于2012年7月1日开始实施。值班
高职商务英语会话信息化课堂教学模式信息化教学是以现代教学理论为指导,以信息技术为支持,应用现代教学方法的教学活动。目前信息化教学在高职院校广为流行,该教学模式环境条件下,倡导科学利用各种信息资源,并有效调动教学媒体
从轮机英语听力与会话评估考试谈海事英语的教学策略前言世界经济一体化进程正在不断加快,航运贸易日前正处在其整顿和调整的关键时期。世界航运劳务市场对高素质高水平船员的需求量是巨大的。目前我国海员劳务输出在世界航运市场所占比例不大,其
英文电影在高中英语课堂教学中的应用探讨当前高中生在学习英语的过程中出现很多问题,例如词汇量缺少阅读速度缓慢口语交际能力缺乏等。为了改善这些问题,本文对英文电影在高中英语教学中的作用进行了探讨,因为电影中的语言和内容都非
英文电影在高中英语课堂教学中的应用研究一前言普通高中英语课程标准明确指出,在高中英语课堂教学中,教师除了合理有效地使用教科书以外,还应积极利用其他课程资源,如广播影视节目各种形式的网络资源多媒体光盘资料报刊资源直观实物
英语电影对大学生英语听力教学的影响一前言听说读写译是英语学习领域当中较为重要的构成成分听在英语学习领域当中占据基础性地位,语言学习指代是在既定的语言环境当中自然学习这样一种过程,单单在对被动模式的收听枯燥乏味的语言
经典英文电影欣赏与高职生大学英语学习兴趣大学英语是高校非英语专业学生开设的一门公共必修课程,平均每周24节课。作为必修课程,就意味着教师必须教,学生也必须学,但实际教学效果怎样呢?据了解,大学公共英语教学的教学效果普遍不
小学英语分层教学的有效研究一实施分层次教学的目的和必要性分层次教学的目的不是人为地制造等级,而是采用不同的方法帮助同学们提高学习成绩,让不同成绩的同学最大限度地发挥他们的潜力,以逐步缩小差距,达到班级整体优
浅谈培养高中生英语自主学习能力的重要性自学英语的内涵和重要性1。兴趣是高中生自学英语的动力源泉。爱因斯坦有句名言我认为,对一切来说,只有热爱才是最好的教师,它远远超过责任感。兴趣是学习的动力源泉,它对学生在英语学习中有
探讨大学英语教学中的翻译能力培养探讨大学英语教学中的翻译能力培养探讨大学英语教学中的翻译能力培养探讨大学英语教学中的翻译能力培养论文关键词大学英语教学翻译教学翻译能力论文摘要本文在分析大学英语教学现状的基础上,对
美国俚语的修辞及其翻译摘要美国俚语占据着美国人日常谈话常用词汇的十分之一,比喻委婉夸张的使用方法在美国俚语中又极其常见。本课题结合国内刘重德基于严复先生的信达雅提出的信达切的翻译原则,并通过对美国俚语的