网站上线[Vellions  2007年7月30日]  

常用合同

论文范本
文书吧-各类论文范本、常用合同、实用文书
实用文书

其它相关
当前位置:文书吧 >> 论文范本 >> 计算机类 >> 正文
站内搜索
用C语言实现按钮新技术
整理:vellions   来源:互联网   点击数:  更新时间:2007年08月13日
  一、按钮显示原理
按钮一般有按下和弹起两种状态,在3D studio中按钮也有这两种状态,Windows中虽然看到按钮虽是弹起的,但细心的用户不难发现,当选中按钮时,它有短暂的按下状态。实际上,它的原理很简单,其实是利用改变按钮边框的颜色引起人视觉上的错觉而达到立体效果,让人们感到屏幕上真有凸起和凹下的按钮一样,如下图:
@@T5S11500.GIF;图1@@
图1和图2给出了按钮两种状态和图示,图1为按钮弹起时的状态图,其右边及下边的边框色为黑色(0X00),而左边及上边的边框颜色置为亮白(0x0f),而图2则恰恰相反,右边及下边的边框色为亮白,左边及上边为黑色,它反映了按钮被按下的状态。
在程序应用中,设置某一按钮时,显示图1的状态,再选中这个按钮时,则显示出图2的状态,经过短暂的延时后,恢复到图1的状态,给用户的感觉是按钮被按下后又弹起。在Windows中的按钮就是这样的,3D studio中的部分按钮当被选中时,只显示图2,这时用户可以很清晰地看到凹下的按钮。
二、程序实现
主要包括按钮结构的意义和与它有关的几个函数。
1.结构定义typedef struet Button Def{
short X1;
short Y1;
short X2;
short Y1;
} button
(X1,Y1)和(X2,Y2)分别为按钮左上角和右下角的位置坐标,用于确定按钮的位置和大小。
为了程序需要,须定义几个常用的量。
#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.函数定义
(1)void Button Define(button *bt,Short X1,Short Y,short X2,short Y2)该函数用于定义一个名为bt的按钮的大小和位置,其左上角及右下角坐标为(X1,Y1),(X2,Y2)。
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:
button *but,*but1.*but2. *bt,*but3,*but4,*but5,*but6,*but7;
int ch;
initgraph(&gdriver,&gmode,"d:\tc");
setcolor(ScreenBkColor);
setbkcolor(2);
clrscr();
ButtonDefine(but,50,50,600,400);
putDownButton(but);
ButtonDefine(but1,150,200,200,250);
ButtonDefine(but2,200+dis,200,250+dis,250);
ButtonDefine(but3,250+2*dis,200,300+2*dis,250);
ButtonDefine(but4,300+3*dis,200,350+3*dis,250);
ButtonDefine(but5,350+4*dis,200,400+4*dis,250);
ButtonDefine(but6,400+5*dis,200,450+5*dis,250);
ButtonDefine(but7,450+6*dis,200,500+6*dis,250);
while(ch!=27)
{
switch(ch) }
case'1':
ReleaseButton(but1);break;
case'2':
ReleaseButton(but2);break;

下一页
本文共 3 页,第  [1]  [2]  [3]  页

发表评论】【告诉好友】【打印此文】【收藏此文】【关闭窗口
上一篇:可移植的256色图形用户界面的设计
下一篇:企业网Intranet的构建方案
  最新文章
用IIS建立高安全性Web服务器 (08.16)
防火墙技术发展的三个发展趋势 (08.16)
企业网Intranet的构建方案 (08.13)
用C语言实现按钮新技术 (08.13)
可移植的256色图形用户界面的设计 (08.13)
动态网页制作技术JSP与ASP的比较 (08.13)
论国家信息化战略 (08.04)
电信标准化的发展与作用 (08.04)
b光缆开剥与接续多媒体课件制作 (08.04)
邮政发展与广告宣传 (08.04)
  信息推荐
  点击排行
邮政发展与广告宣传 (08.04)
中小型企业内部网(Intranet)的实 (08.04)
电子商务的安全问题研究 (08.02)
U盘故障的详细维修方法 (08.02)
用IIS建立高安全性Web服务器 (08.16)
论国家信息化战略 (08.04)
电信标准化的发展与作用 (08.04)
b光缆开剥与接续多媒体课件制作 (08.04)
网络时代将给邮政带来的挑战和机 (08.04)
邮政应如何应对“入世”后的挑战 (08.04)
  文章推荐
关于本站 | 广告合作 | 留言反馈
文书吧 © 2007-2008
本站所有文章均来自互联网,如有侵犯您权益处请来信或者留言说明。
京ICP备案中...