Red de conocimiento informático - Descarga de software - ¿Se puede embellecer la interfaz de un programa utilizando el lenguaje C?

¿Se puede embellecer la interfaz de un programa utilizando el lenguaje C?

El lenguaje C puede crear interfaces muy hermosas. En teoría, la interfaz no es más que un control informático de cada píxel. c tiene plenamente esta habilidad, pero es más complicado.

Este ejemplo se ve muy bonito.

#include

#include

#include

# define CENTERX 320 /*Marcar posición central*/

#define CENTERY 175

#define CLICK 100 /*Frecuencia de clic*/

#define CLICKDELAY 30 / *Retraso de clic*/

#define HEBEEP 10000 /*Alta frecuencia*/

#define LOWBEEP 500 /*Baja frecuencia*/

#define BEEPDELAY 200 /*Retraso del sonido del tiempo*/

/*Forma de escala del dial*/

int Mrk_1[8]={-5,-160,5,-160,5,-130 ,-5,-130, };

int Mrk_2[8]={-5,-160,5,-160,2,-130,-2- 130, };

/*Forma de la manecilla de hora*/

int HourHand[8]={-3,-100,3,-120,4, 10,-4,10 };

/*Forma del minutero*/

int MiHand[8]={-3,-120,3,-120,4, 10,-4,10}

/*Forma de segunda mano*/

int SecHand[8]={-2,-150,2,-150,3, 10,-3,10};

p>

/*Hacer un sonido de clic*/

void Click()

{

sonido(CLIC);

retraso( CLICKDELAY);

nosound();

}

/*Suena la hora*/

void HighBeep()

{

sonido(HEBEEP);

retraso(BEEPDELAY);

sin sonido;

}

/*Decir la hora en voz baja*/

void LowBeep()

{

sonido(LOWBEEP);

}

/*Dibujar un polígono en cualquier ángulo*/

void DrawPoly(int *data,int ángulo,int color)

{

int usedata[8];

float sinang,cosang;

int i;

sinang=sin((float)angle/180*3.14 ) ;

cosang=cos((float)angle/180*3.14);

for(i=0;i<8;i+=2)

{

usedata[i] =CENTERX+ cosang*data[i]-sinang*data[i+1]+.5;

usedata[i+1]=CENTERY+ sinang* datos[i]+cosang*datos[i+1]+.5;

}

setfillstyle(SOLID_FILL,color);

fillpoly( 4, usedata);

}

/*Dibuja el dial*/

void DrawClock(struct time *cutime)

{< / p>

en

t ang;

velocidad horaria flotante,velocidad mínima,secración;

setbkcolor(AZUL);

cleardevice();

setcolor(BLANCO );

/* Dibujar escala*/

for(ang=0;ang<360;ang+=90)

{

DrawPoly(Mrk_1,ang,WHITE);

DrawPoly(Mrk_2,ang+30,WHITE);

DrawPoly(Mrk_2,ang+60,WHITE);

}

secrate=(float)cutime->ti_sec/60;

minrate=((float)cutime->ti_min+secrate)/60;

hourrate=(((float)cutime->ti_hour/12)+minrate)/12;

ang=hourrate*360;

DrawPoly(HourHand,ang,YELLOW );/*Dibujar manecilla de hora*/

ang=minrate*360;

DrawPoly(MiHand,ang, GREEN);/*Dibujar manecilla de minutos*/

ang=secrate*360;

DrawPoly(SecHand,ang, RED);/*Dibujar el segundero*/

}

main()

{

int gdriver=EGA,

gmode=EGAHI;

int curpage;

tiempo de estructura hora curtime, nueva hora

initgraph(&gdriver,&gmode,"c:\\tc");

setbkcolor(BLUE);

cleardevice();

gettime(&curtime);

curpage=0;

DrawClock(&curtime);

mientras(1)

{

if(kbhit())

break; /*Presione cualquier tecla para salir*/

gettime(&newtime); time*/

if(newtime.ti_sec!=curtime.ti_sec)/*Actualizar tiempo cada 1 segundo*/

{

if(curpage== 0)

curpage=1;

else

curpage=0;

curtime=newtime;

/*Establecer página de dibujo*/

setactivepage(curpage);

/*Dibujar el dial en la página de imagen*/

DrawClock(&curtime);

/*Establecer la página de dibujo como la página actualmente visible*/

setvisualpage(curpage);

/*Hacer sonar la hora en voz alta a los 0 minutos y 0 segundos. */

if (newtime.ti_min==0&&newtime.ti_sec==0)

HighBeep();

/* Susurra el tiempo de 59 minutos a 55 segundos*/

else if(newtime.ti_min==59&

&

newtime.ti_sec<=59)

LowBeep();/*Solo clics en otros momentos*/

else

Hacer clic();

}

}

cerrar gráfico();

}