首頁 > 文章中心 > 正文

      按鈕新技術管理

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

      按鈕新技術管理

      一、按鈕顯示原理

      按鈕一般有按下和彈起兩種狀態,在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无码一区二区三区在线| 亚洲国产成人五月综合网| 亚洲乱码一区二区三区在线观看 | 国产V亚洲V天堂无码| 伊人久久五月丁香综合中文亚洲| 国产亚洲精品看片在线观看| 亚洲国产综合第一精品小说| 国产亚洲精品无码专区| 中文字幕亚洲一区| 亚洲一区二区三区影院| 亚洲国产一区二区三区在线观看| 亚洲妇熟XXXX妇色黄| 亚洲国产一成人久久精品| 国产亚洲综合色就色| 久久亚洲一区二区| 亚洲国产中文字幕在线观看| 亚洲国产成a人v在线观看| 婷婷精品国产亚洲AV麻豆不片 | 亚洲日本在线电影| 亚洲国产美女在线观看| 亚洲欧洲另类春色校园网站| 亚洲中文字幕日本无线码| 亚洲视屏在线观看| MM1313亚洲精品无码久久| 91亚洲视频在线观看| 亚洲人成77777在线播放网站不卡| 男人天堂2018亚洲男人天堂| 国产午夜亚洲精品| 日韩亚洲人成网站| 亚洲欧美国产国产综合一区| 国产精品亚洲专区无码唯爱网| 日韩亚洲精品福利| 亚洲欧美日韩中文字幕一区二区三区| 亚洲国产AV无码一区二区三区| 亚洲AV无码乱码精品国产| 亚洲综合av永久无码精品一区二区| 国产亚洲综合一区柠檬导航| 91亚洲精品视频| 中文字幕乱码亚洲精品一区 | 久久久久亚洲精品无码网址色欲 |