首頁 > 文章中心 > 正文

      按鈕新技術管理

      前言:本站為你精心整理了按鈕新技術管理范文,希望能為你的創作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。

      按鈕新技術管理

      一、按鈕顯示原理

      按鈕一般有按下和彈起兩種狀態,在3Dstudio中按鈕也有這兩種狀態,Windows中雖然看到按鈕雖是彈起的,但細心的用戶不難發現,當選中按鈕時,它有短暫的按下狀態。實際上,它的原理很簡單,其實是利用改變按鈕邊框的顏色引起人視覺上的錯覺而達到立體效果,讓人們感到屏幕上真有凸起和凹下的按鈕一樣,如下圖:

      @@T5S11500.GIF;圖1@@

      圖1和圖2給出了按鈕兩種狀態和圖示,圖1為按鈕彈起時的狀態圖,其右邊及下邊的邊框色為黑色(0X00),而左邊及上邊的邊框顏色置為亮白(0x0f),而圖2則恰恰相反,右邊及下邊的邊框色為亮白,左邊及上邊為黑色,它反映了按鈕被按下的狀態。

      在程序應用中,設置某一按鈕時,顯示圖1的狀態,再選中這個按鈕時,則顯示出圖2的狀態,經過短暫的延時后,恢復到圖1的狀態,給用戶的感覺是按鈕被按下后又彈起。在Windows中的按鈕就是這樣的,3Dstudio中的部分按鈕當被選中時,只顯示圖2,這時用戶可以很清晰地看到凹下的按鈕。

      二、程序實現

      主要包括按鈕結構的意義和與它有關的幾個函數。

      1.結構定義typedefstruetButtonDef{

      shortX1;

      shortY1;

      shortX2;

      shortY1;

      }button

      (X1,Y1)和(X2,Y2)分別為按鈕左上角和右下角的位置坐標,用于確定按鈕的位置和大小。

      為了程序需要,須定義幾個常用的量。

      #defineSTART-Xbt→X1

      #defineSTART-Ybt→Y1

      #defineEND-Xbt→X2

      #defineEND-Ybt→Y2

      #defineGrap1(Grap為按鈕邊框的寬度)

      #defineButtonWhite0x0f

      #defineButtonBlack0x00

      2.函數定義

      (1)voidButtonDefine(button*bt,ShortX1,ShortY,shortX2,shortY2)該函數用于定義一個名為bt的按鈕的大小和位置,其左上角及右下角坐標為(X1,Y1),(X2,Y2)。

      START-X=X1;

      START-Y=Y1;

      END-X=X2;

      END-Y=Y2;

      (2)VoidReleaseButton(button*bt)

      該函數顯示按鈕彈起時的狀態。

      (3)PutDownButton(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"

      #defineSTART-Xbt->x1

      #defineSTART-Ybt->y1

      #defineEND-Xbt->x2

      #defineEND-Ybt->y2

      #defineGrap1

      #defileScreenBkColor2

      #definerelease-color7

      #defineput-color3

      #defineButtonWhite0x0f

      #defineButtonBlack0x00

      #definedelay50000

      #definedis10

      voidButtonDefine(button*bt.shout.short.short.short);

      voidReleaseButton(button*bt);

      voidPutDownButton(button*bt);

      voiddelay-time(longint);

      main()

      {

      intgdriver=DETECT.gmode=VGAHI:

      button*but,*but1.*but2.*bt,*but3,*but4,*but5,*but6,*but7;

      intch;

      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;

      case''''3'''':

      ReleaseButton(but3);break;

      case''''4'''':

      ReleaseButton(but4);break;

      case''''5'''':

      ReleaseButton(but5);break;

      case''''6'''':

      ReleaseButton(but6);break;

      case''''7'''':

      ReleaseButton(but7);break;

      }

      ch=getch();

      if(ch==27)

      break;

      switch(ch)

      {

      case''''1'''':

      PutDownButton(but1);break;

      case''''2'''':

      PutDownButton(but2);break;

      case''''3'''':

      PutDownButton(but3);break;

      case''''4'''':

      PutDownButton(but4);break;

      case''''5'''':

      PutDownButton(but5);break;

      case''''6'''':

      PutDownButton(but6);break;

      case''''7'''':

      PutDownButton(but7);break;

      }

      delay-time(delay);

      }

      closegraph():

      return0;

      }

      voidButtonDefine(button*bt.shortx1,shorty1,shortx2,shorty2)

      {

      START-X=x1;

      START-Y=y1;

      END-X=x2;

      END-Y=y2;

      }

      voidReleaseButton(button*bt)

      {

      inti,j;

      setcolor(7);

      setfillstyle(1,7);

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

      setcolor(ButtonWhite);

      setfillstyle(1,7);

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

      setcolor(15);

      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;

      }

      voidPutDownButton(button*bt)

      }

      inti,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(15);

      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);

      }

      }

      voiddelay-time(longinti)

      {

      i=0;

      while(i<=delay)

      i++;

      }

      button.h

      typedefstructButtonDef

      {shortx1;

      shorty1;

      shortx2;

      shorty2;

      }button;

      文檔上傳者
      亚洲AV日韩AV永久无码免下载 | 亚洲国产美女在线观看| 亚洲国产日产无码精品| 亚洲国产精品无码专区| 久久久久一级精品亚洲国产成人综合AV区 | 亚洲无人区码一二三码区别图片| 亚洲黄色三级网站| 中文字幕无码亚洲欧洲日韩| 国产亚洲欧美日韩亚洲中文色| 亚洲伊人久久大香线焦| 亚洲成av人片不卡无码久久| 国产精品亚洲专区无码不卡| 亚洲精品天堂成人片AV在线播放| 一本色道久久88—综合亚洲精品| 日韩亚洲产在线观看| 亚洲AV无码乱码在线观看性色扶| 亚洲中文字幕久久久一区| 中文字幕亚洲综合久久综合| 亚洲精品无码国产片| 亚洲中久无码不卡永久在线观看| 亚洲AV色无码乱码在线观看 | 亚洲精品中文字幕无码AV| 国产亚洲高清在线精品不卡| 亚洲成年人在线观看| 78成人精品电影在线播放日韩精品电影一区亚洲| 亚洲AV一宅男色影视| 亚洲综合一区二区国产精品| 中文字幕亚洲综合久久菠萝蜜| 亚洲91精品麻豆国产系列在线| 亚洲国产精品成人久久蜜臀| 亚洲粉嫩美白在线| 亚洲网红精品大秀在线观看| 亚洲视屏在线观看| 婷婷亚洲天堂影院| 亚洲成av人片在线天堂无| 国产亚洲蜜芽精品久久| 亚洲国产精品一区二区三区在线观看 | 亚洲乳大丰满中文字幕| 久久久久亚洲AV无码观看 | 亚洲av无码一区二区三区四区 | 国产自偷亚洲精品页65页|