使用时将项目属性字符集改成“使用多字节字符集”,符合模式改为“否”。
代码中部分文件来源于本地文件,使用时需自行更换(代码中有注释)。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <graphics.h>
#include <string.h>
#include <conio.h>
#include <mmsystem.h>
#pragma comment(lib,"winmm.lib")
typedef struct Button {
int x;
int y;
int xx;
int yy;
COLORREF color;
char* buttonStr;
}BTN, * LPBTN;
/*
typedef :起别名
struct Button==BNT;
struct Button*==LPBNT;
*/
//做按钮:
//1、确定按钮的属性----》创建按钮的过程
LPBTN createButton(int x, int y, int xx, int yy, COLORREF color, char* buttonStr) {
LPBTN button = (LPBTN)malloc(sizeof(BTN));
button->x = x;
button->y = y;
button->xx = xx;
button->yy = yy;
button->color = color;
button->buttonStr = (char*)malloc(strlen(buttonStr) + 1);
strcpy(button->buttonStr, buttonStr);
return button;
}
//画按钮
void drawButton(LPBTN pButton) {
setlinecolor(BLACK);
setfillcolor(pButton->color);
fillrectangle(pButton->x, pButton->y, pButton->xx, pButton->yy);
setbkmode(TRANSPARENT);
settextcolor(BLACK);
settextstyle(30, 0, "楷体");
outtextxy(pButton->x + 15, pButton->y + 10, pButton->buttonStr);
}
//判断鼠标位置
int IsinButton(LPBTN pButton,MOUSEMSG m) {
if (pButton->x <= m.x && m.x <= pButton->xx && pButton->y <= m.y && pButton->yy >= m.y) {
return 1;
}
return 0;
}
//按钮颜色效果
void Color(LPBTN pButton, MOUSEMSG m) {
if (IsinButton(pButton, m)) {
pButton->color = RGB(142, 210, 138);
}
else {
pButton->color = YELLOW;
}
}
//鼠标点击功能
int clickButton(LPBTN pButton, MOUSEMSG m) {
if (IsinButton(pButton, m)) {
if (m.uMsg == WM_LBUTTONDOWN) {
return 1;
}
}
return 0;
}
int main() {
/*
* 音乐播放:
mciSendString("指令集",0,0,0);
指令集:
open:打开
play:播放
pause:暂停
resume:继续
close:关闭
其他指令:
repeat:重复
wait:等待
*/
//打开音乐文件
mciSendString("open be.mp3 /*代码文件夹下的MP3音频文件名称*/ ", 0, 0, 0);
//按钮的使用
LPBTN play = createButton(300,200,450,250,YELLOW,"播放音乐");
LPBTN pause = createButton(300,260,450,310,YELLOW,"暂停音乐");
LPBTN resume = createButton(300,320,450,370,YELLOW,"继续音乐");
LPBTN close = createButton(300,380,450,430,YELLOW,"关闭音乐");
//创建窗口
initgraph(800, 600);
//识别鼠标动作
MOUSEMSG m;
//图片类型定义===IMAGE
IMAGE bk;
//加载图片
loadimage(&bk, "背景.png /*代码文件夹下的背景图片文件名称*/ ", 800, 600);
while (1) {
BeginBatchDraw();
cleardevice();
putimage(0, 0, &bk); //放置背景图片
drawButton(play);
drawButton(pause);
drawButton(resume);
drawButton(close);
MOUSEMSG m = GetMouseMsg(); //获取鼠标消息
Color(play,m);
Color(pause,m);
Color(resume,m);
Color(close,m);
if (clickButton(play, m)) {
//音乐加载指令
//播放音乐文件
mciSendString("play be.mp3 /*代码文件夹下的MP3音频文件名称*/ ", 0, 0, 0);
}
if (clickButton(pause, m)) {
//暂停音乐
mciSendString("pause be.mp3 /*代码文件夹下的MP3音频文件名称*/ ", 0, 0, 0);
}
if (clickButton(resume, m)) {
//继续音乐
mciSendString("resume be.mp3 /*代码文件夹下的MP3音频文件名称*/ ", 0, 0, 0);
}
if (clickButton(close, m)) {
//关闭音乐
mciSendString("close be.mp3 /*代码文件夹下的MP3音频文件名称*/ ", 0, 0, 0);
exit(0);
}
EndBatchDraw();
}
_getch();
closegraph();
return 0;
}