快过年了,亲们,想送点东西给家人和朋友吗,今天教大家做一个音乐贺卡
在做音乐贺卡前,请准备下面的资源:
一首MP3格式的歌曲、一张位图(bmp格式的图片)、一个图标(icon格式的图片)
准备好上面的东西后,就开始做了,在制作之前还要做一些准备工作
将MP3格式的歌曲放在D盘的根目录下,并且将歌曲的名字改为1
打开VC6.0
选择文件—>新建
弹出新建工程界面
选择 Win32 DialogBased Application
在工程名称中输入音乐贺卡
单击确定后进入编程界面
修改程序的名字:将程序的名字改为音乐贺卡
在图形界面上右击
选择属性
弹出属性选择框
将标题中的文字改为:(音乐贺卡)
添加最小化选项
在属性选择框中选择样式
选定最小化框
添加图标:
选定 Resource resource
在Resource resource上单击右键
选择引入
选择一个图标
单击引入
引入图标后的界面
添加位图:
按照上面的操作选择引入
文件类型选为所有文件
选择一张位图,并且单击引入
引入位图后的界面
搭建界面:
选择Dialog
选择IDD_MAIN
进入界面
弹出控件选择框:
将鼠标移到菜单栏,并且单击鼠标右键弹出下列菜单
选择控件
弹出控件选这框
控件介绍
在对话框中插入位图
选择图片控件
在界面上调整大小
在图片界面边缘双击鼠标左键(弹出picture属性界面)
在类型中选择位图
在图像中选择IDB_BITMAP!
选好后,程序中就插入了一张图片
在界面上放两个静态文本,静态文本的标题分别是《身\n\n无\n\n彩\n\n凤\n\n双\n\n飞\n\n翼》和《心\n\n有\n\n灵\n\n犀\n\n一\n\n点\n\n通》和三个按钮,分别是音乐(IDC_MUSIC)、停止(IDC_STOP)、退出(IDC_EXIT)
注:修改控件的名字和控件的ID以及按钮盒静态文本控件的使用,请参考前面的博客
搭建好的界面:
写代码:
打开代码编辑界面(代码编辑界面的打开方法请参考前面的博客)
在写代码前先学习一个函数
函数名:mciSendString
头文件:mmsystem.h
函数功能:处理媒体文件(如:播放 暂停 停止)
函数原型:
MCIERROR mciSendString(
LPCTSTR lpszCommand,
LPTSTR lpszReturnString,
UINT cchReturn,
HANDLE hwndCallback
);
参数:
LPCTSTR lpszCommand 发送命令串
LPTSTR lpszReturnString 返回的字符串
UINT cchReturn, 返回的字符串的大小
HANDLE hwndCallback 一般为0
参考文章:mciSendString函数
程序代码:
#include "stdafx.h" #include <windows.h> #include <windowsx.h> #include <mmsystem.h> #include "resource.h" #include "MainDlg.h" BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog); HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand); HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose); } return FALSE; } BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam) { /*在窗口的标题栏上显示图标*/ SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ICON1))); return TRUE; } void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify) { switch(id) { case IDC_MUSIC: { //播放D盘中的1.mp3 mciSendString("play D:\\1.mp3",0,0,0); } break; case IDC_STOP: { //停止播放D盘中的1.mp3 mciSendString("stop D:\\1.mp3",0,0,0); } break; case IDC_EXIT: { exit(0);//退出程序 } break; default: break; } } void Main_OnClose(HWND hwnd) { EndDialog(hwnd, 0); }
执行结果: