C语言--电子相册

 电子相册

本篇文章向大家介绍一个制作电子相册的代码,可以拿着制作自己的影集,也可以给女朋友做节日表白用喔,快来看看啦。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <graphics.h> 
#include <math.h>
#include <mmsystem.h>
#pragma comment(1ib,"winmm.lib")

IMAGE backImg;
IMAGE girlBig[4];
IMAGE girlSmall[4];//存放四个小女孩
//记录翻看的照片的页码
int smallNum=0;

void loadResource()
{
	mciSendString("open 1.mp3 alias music",0,0,0);
    mciSendString("play music repeat",0,0,0);
    loadimage(&backlmg,"background.jpg");
//批量加载:因为文件名字格式
    for(int i=0;i<4;i++)
    {
    	char fileName[20]="";
    //0.jpg1.jpg2.jpg
    sprintf(fileName,"%d.jpg",i);
    loadimage(girlBig +i,fileName,250, 350);
    loadimage(girlSmall +i,fileName,100,130);
	}
}
 
void drawButton(int X,int y,char postion)
{
	setfillcolor(BLACK);
    solidcircle(x,y,20);
    setlinecolor(WHITE);
    setlinestyle(PS_SOLLD,3,0);
    if(postion=='r')
    {
    	circle(x,y,15);
        line(x-10,y,x+10,y);
        line(x+6,y-4,x+10,y);
        Iine(x+6,y+4,x+10,y); 
	}
    else if (postion=='l')
    {
    	circle(x,y,15);
        line(x-10,y,x+10,y);
        line(x-6,y-4,x-10,y);
        Iine(x-6,y+4,x-10,y);
	}
}
 
void drawMap()
{

    //画背景
    putimage(0,0,&backImg);
    //画小图第0张和第1张
    putimage(90,160,girlSmall+0);
    putimage(90,310,girlSmall+1);
    //画大图
    putimage(345,100,girlBig+0);
    //画按钮
    drawButton(180,120,'r');
    drawButton(110,120,'l');
    //文字:爱情宣言
    //设置文字颜色为蓝色
    settextcolor(BLUE)
    settextsty1e(25,0,"字魂24号-镇魂手书");
    //设置字大小和字体
    //去掉文字背景
    setbkmode(TRANSPARENT);//背景透明
    //坐标计鼻:用截冬工具去测坐标
    outtextxy(350,50,"顿开教育 爱情相册 V1.0版本");
    //打印文字
}

void clickButton(int X,int y,char postion)
{
	setfillcolor(BLACK);
    solidcircle(x,y,20);
    setlinecolor(YELLOW);
    setlinestyle(PS_SOLID,3,0);
    if(postion=='r')
    {
    	circle(x,y,15);
        line(x-10,y,x+10,y);
        line(x+6,y-4,x+10,y);
        Iine(x+6,y+4,x+10,y); 
	}
    else if (postion=='l')
    {
    	circle(x,y,15);
        line(x-10,y,x+10,y);
        line(x-6,y-4,x-10,y);
        Iine(x-6,y+4,x-10,y);
	}
}

void drawRect(int flag)
{
	if(flag==1)
	{
		setlinecolor(GREEN);
//putimage(90,160,girlSma11+0).//100,
//putimage(90,310,girlSma11+1)
        rectangle(90-5,160-5,90+100+5,130+160+5);
        setlinecolor(WHITE);
        rectangle(90-5,310-5,90+100+5,130+310+5);
	}
    else if(flag==2)
	{
		setlinecolor(GREEN);
//putimage(90,160,girlSma11+0).//100,
//putimage(90,310,girlSma11+1)
        rectangle(90-5,310-5,90+100+5,130+310+5);
        setlinecolor(WHITE);
        rectangle(90-5,160-5,90+100+5,130+160+5);
	} 
}
void userMoveMouse()
{
	MOUSEMSG m;
    int flag=1;
    while(1)
    {
    	m=GetMouseMsg();
        switch(m.uMsg)
        {
        	case WM_MOUSEMOVE://示移动
			if(sqrt((double)(m.x -180) *(m.x-180)+(m.y-120)*(m.y-120))<20)
            {
	            clickButton(180,120,'r');
            }//右边
            else if(sqrt((double)(m.x-110)*(m.x-110)+(m.y-120)*(m.y-120))<20)
            {
	            clickButton(110,120,'l');
            }
            else
            {
	            drawButton(180,120;'r');
                drawButton(110,120;'l');
            }
            break
            case WM_LBUTTONDOWN:
            if(sqrt((double)(m.x -180) *(m.x-180)+(m.y-120)*(m.y-120))<20)
            {
            	drawRect(flag);
            	if(smallNum==4)
            	{
            		putimage(90,160,girlSmall+0);
            		putimage(90,310,girlSmall+1);
            		smallNum=0;
				}
				if(smallNum==2)
            	{
            		putimage(90,160,girlSmall+2);
            		putimage(90,310,girlSmall+3);
            	}
            	putimage(345,100,girlBig+smallNum);
            	smallNum++;
			}
			else if(sqrt((double)(m.x-110)*(m.x-110)+(m.y-120)*(m.y-120))<20)
			{
				drawRect(flag);
            	if(smallNum==4)
            	{
            		putimage(90,160,girlSmall+0);
            		putimage(90,310,girlSmall+1);
            		smallNum=0;
				}
				if(smallNum==2)
            	{
            		putimage(90,160,girlSmall+2);
            		putimage(90,310,girlSmall+3);
            	}
            	putimage(345,100,girlBig+smallNum);
            	smallNum++;
			}
			flag++;
			if(flag==3)
			flag=1;
			break;
		}
    }
}
int main()
{
	initgraph(932,538);
    loadResource();
    drawMap();
    userMoveMouse();
    getchar();
    closegraph();
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枳实、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值