首頁 > 文章中心 > 正文

      按鈕新技術管理

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

      按鈕新技術管理

      一、按鈕顯示原理

      按鈕一般有按下和彈起兩種狀態,在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;

      文檔上傳者
      国产成人亚洲综合色影视| 亚洲成a人片在线不卡一二三区 | 亚洲国产综合专区电影在线| 亚洲综合熟女久久久30p| 亚洲精品视频免费观看| 亚洲Av无码乱码在线播放| 亚洲精品蜜夜内射| 亚洲AV永久无码精品一福利| 亚洲AV噜噜一区二区三区| 亚洲av纯肉无码精品动漫| 风间由美在线亚洲一区| 国内成人精品亚洲日本语音| 日韩亚洲人成在线综合| 亚洲成av人片在线观看天堂无码| 国产午夜亚洲精品不卡电影| 蜜桃传媒一区二区亚洲AV| 综合偷自拍亚洲乱中文字幕 | 亚洲国产成人精品无码区花野真一| 亚洲视频无码高清在线| 亚洲综合小说另类图片动图| 亚洲人成色99999在线观看| 亚洲精品无码不卡在线播放| 久久综合亚洲色hezyo| 日本亚洲中午字幕乱码 | 亚洲精品456播放| 久久久久亚洲AV成人网人人软件 | 77777亚洲午夜久久多喷| 亚洲中文无码永久免| 亚洲AV日韩AV无码污污网站| 国产亚洲美女精品久久| 亚洲日本中文字幕天堂网| 亚洲永久精品ww47| 亚洲2022国产成人精品无码区| 久久亚洲中文字幕精品有坂深雪| 亚洲激情黄色小说| 亚洲乱码中文字幕在线| 亚洲国产精品无码久久青草| 亚洲精品无码久久千人斩| 亚洲日本中文字幕区| jlzzjlzz亚洲jzjzjz| 久久亚洲精品无码gv|