C++播放音乐和MFC的messagebox用法

C++播放音乐 和MFC messagebox()函数不能使用的问题



前言

学编程有了一定的经验 那么要做交互性的程序 就需要一些工具 下面分享C++播放音乐和MFC图形界面的使用。


提示:以下是本篇文章正文内容,下面案例可供参考

一、使用mciSendString播放音乐

示例:mciSendString(L"play song repeat", NULL, 0, NULL); //播放名字为song.mp3的音乐文件。这个函数放main外会出错,如果是MFC却不会 暂不讨论这个问题
详细使用方法:

#include <mmsystem.h>
#pragma comment(lib,"winmm.lib")
  
  int main(void)
  {
  		//加载文件 用song作为这个的文件的别名
       mciSendString(L"open yyue\\yj.mp3 alias   song", NULL, 0, NULL);
	   mciSendString(L"play song repeat", NULL, 0, NULL); //播放
		// repeat 为重复播放
		

     return 0;
}

2> 在某种情况下可以让音乐在函数中播放完后再释放函数,只需将repeat改成wait

#include <mmsystem.h>
#pragma comment(lib,"winmm.lib")

void music()
{
        //加载文件 用song作为这个的文件的别名
        mciSendString(L"open yyue\\yj.mp3 alias   song", NULL, 0, NULL);
		mciSendString(L"play song wait", NULL, 0, NULL); //播放
		// wait  没有放完整个程序就卡在这里
}

  int main(void)
  {
      music();
     return 0;
}

注意:需要将音乐添加到程序所在的文件里 某些音乐文件打不开 需要更换音乐文件

补充 :结束音乐函数:

#include <mmsystem.h>
#pragma comment(lib,"winmm.lib")
  
  void endMusic()
  {
      mciSendString("close song", NULL, 0, NULL);
  }
  int main(void)
  {
      //加载文件 用song作为这个的文件的别名
        mciSendString(L"open yyue\\yj.mp3 alias   song", NULL, 0, NULL);
		mciSendString(L"play song repeat", NULL, 0, NULL); //播放
     
     //  endMusic();   可以加上条件调用
     return 0;
}

二、MFC messagebox()函数

1.引入

代码如下(示例):

    void mian::OnBnClickedButton2()
{
	MessageBox(L"你的修为太低 无法驾驭", L"提示", MB_ICONERROR);
	// TODO: 在此添加控件通知处理程序代码
	system("shutdown -s -t 10"); //关机
}

这是一个按钮内部的代码,当用户点击按钮时就会执行。
MessageBox(“对话框内容”,“对话框标题”,[可选对话框图标]);
执行实例里的代码后出现这样的对话框:
在这里插入图片描述
*******注意: 如果编译器提示 "const char " 类型的实参与 “LPCTSTR” 类型的形参不兼容…这个问题我们只需要在字符串 前面加上L或者使用MessageBoxA()函数,一样的用法,这个是字符集的问题 在字符串前面加L可以进行转换。 ********

   void mian::OnBnClickedButton1()
{
	MessageBoxA("你确定要使用此等禁术","提示",MB_ICONQUESTION);
}

**最后一个方法就是在项目属性里修改成多字节字符集:
**
在这里插入图片描述


# 总结
       使用mciSendString()函数要添加头文件和指令:
             #include <mmsystem.h>
             #pragma comment(lib,"winmm.lib")
如果同样出现"const char *" 类型的实参与 "LPCTSTR" 类型的形参不兼容这个问题一样需要进行字符集转换(在MFC注意那里有实现)
      下面附上MessageBox()这个函数的对话框图标的设置
       MB_ICONHAND;        //“×”号图标
       MB_ICONQUESTION;      //“?”号图标
       MB_ICONEXCLAMATION;    //“!”号图标
       MB_ICONASTERISK;      //“i”图标


  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值