picture.c

来自「浙大《C语言设计基础课程设计》中的例程 有些比较好的代码!」· C语言 代码 · 共 88 行

C
88
字号
#include "compute.h"

#define   MSIZE    5      /* 鼠标图标大小 */
void far *imagep;           /* 鼠标图形位图的全局指针变量 */
/********************************************************** 
 *  函数原型:void picture()                 	*
 *  传入参数:无                               	*
 *  返 回 值:无                            	*
 *  函数功能:绘制简单计算器的图形界面	*
 **********************************************************/
void picture()
{
	int i,j,k=0;
	int a=150,b=105;
	unsigned long gsize;
    
/*计算器按钮标签文本字符 */
	char str[]={'1','2','3','-','/','4','5','6','*','S','7','8','9','%','C','\0'};
	char temp[2]="";

	/* 绘制鼠标图形 */
	setcolor(RED);
rectangle(a-MSIZE,b-MSIZE,a+MSIZE,b+MSIZE);
	line(a-MSIZE,b-MSIZE,a+MSIZE,b+MSIZE);
	line(a-MSIZE,b+MSIZE,a+MSIZE,b-MSIZE);

/* 保存鼠标图形位图 */
	gsize=imagesize(a-MSIZE,b-MSIZE,a+MSIZE,b+MSIZE);
	imagep=malloc(gsize);
	getimage(a-MSIZE,b-MSIZE,a+MSIZE,b+MSIZE,imagep);

	cleardevice();

	setbkcolor(LIGHTBLUE);
	setfillstyle(SOLID_FILL,LIGHTGRAY);
	bar3d(130,45,500,280,10,1);        /* 计算器外框 */
	setcolor(DARKGRAY);
	line(150,60,150,90);
	line(150,90,480,90);
	setcolor(WHITE);
	line(150,60,480,60);
	line(480,60,480,90);
	setfillstyle(SOLID_FILL,YELLOW);
	bar(150,60,480,90);            /* 绘制信息显示框 */
	setfillstyle(SOLID_FILL,LIGHTGRAY);

	for(i=0;i<5;i++)                /* 绘制计算器按钮框 */
	     for(j=0;j<4;j++)
		  {
		      bar(a+i*70,b+j*45,a+50+i*70,b+30+j*45);
		      bottonup(a+i*70,b+j*45);
		  }

       setcolor(YELLOW);
       settextstyle(1,0,1);
/* 输出计算器使用说明等信息 */
       outtextxy(130,298,"Press C To Open The Calculator.");
       outtextxy(130,315,"Press S To Sqrt Number.");
       outtextxy(130,332,"Left Press To Use The Calculator.");
       outtextxy(130,349,"Right Press To Quit The Calculator.");

       settextstyle(1,0,3);
       setcolor(RED);
       outtextxy(130,380,"Welcome To Use Caculator!");
       settextstyle(2,0,5);
       setcolor(WHITE);
       outtextxy(280,420,"Made by Zhejiang University");

       settextstyle(1,0,2);
       setcolor(GREEN);
       for(j=0;j<3;j++)
	   for(i=0;i<5;i++)        /* 显示计算器前三排按钮标签 */
	   {
		     temp[0]=str[k++];
		     outtextxy(a+17+70*i,200-j*45,temp);
	   }
       outtextxy(167,245,"0"); /* 显示计算器最后一排按钮标签 */
       outtextxy(377,245,"+");
       outtextxy(447,245,"=");
       settextstyle(1,0,3);
       outtextxy(310,235,".");
       settextstyle(1,0,2);
       outtextxy(228,243,"+");
       outtextxy(237,246,"/");
       outtextxy(246,250,"-");
       setcolor(BLACK);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?