【说明】hello,友友们,这一章是我写的入门图形编程的最后一章了,内容也不多,希望你们学的开心 (^~^)。顺便说一下,现在的我对一些基础操作的小游戏挺感兴趣的,之后也许会把代码教程写出来,动个小手点赞支持一下吧。敬请期待ヽ(*≧ω≦)ノ,
一:内容介绍
这一篇讲的是如何在黑窗口上播放音乐以及如何修改窗口标题、弹出对话框。
二:基础知识
windowsAPI 播放音乐:
为了实现C语言播放音乐,需要用到 windows 的一个API
1.需要包含头文件 windows.h和 mmsystem.h(如果已经包含了 graphics.h,则无需包含)
2.需要加载静态库 winmm.lib
3.最后用 mciSendString函数来播放音乐就可以了
使用方法:
mciSendString("open ./Dream_It_Possible alias BGM", 0, 0, 0);
mciSendString("play BGM repeat", 0, 0, 0);
窗口及对话框
HWND hnd =GetHWND();//获得窗口句柄
SetWindowText(hnd, "标题");//修改窗口标题
MessageBox(hnd/NULL, "恭喜你成功中奖500万", "提示", MB_OKCANCEL);//设置模态对话框,具体见下图。hnd/NULL的区别下面讲。
其中,MB_OKCANCEL是窗口中显示的 “确定,取消”,如果想换成其他的,可以右键转到定义
窗口句柄及标题:
模态对话框:
三:代码
#include <stdio.h>
#include <graphics.h>
#include <mmsystem.h>
#pragma comment(lib,"winmm.lib")//加载静态库
void BGM()
{
//关于歌曲的文件同之前讲:在窗口上放映图片一样,要在同级文件下,后面的参数可以转到定义去看
mciSendString("open ./Dream_It_Possible alias BGM", 0, 0, 0);
//播放完歌曲后会自动暂停的,如果想要循环播放,可以加上repeat,注意while是不行的
mciSendString("play BGM repeat", 0, 0, 0);
if (0)
//如果想要停止播放,close 就行了,如下,这里的if(0)什么都不是,只是为了讲解,可以把0理解为你想要的停止播放条件
{
mciSendString("close BGM", 0, 0, 0);
}
}
void change()
{
//获取窗口句柄
HWND hnd = GetHWnd();
//设置窗口标题
SetWindowText(hnd, "恭喜发财");
//弹出窗口,提示用户操作
MessageBox(NULL, "恭喜你成功中奖500万", "提示", MB_OKCANCEL);
//MessageBox(hnd, "恭喜你成功中奖500万", "提示", MB_OKCANCEL);
}
int main()
{
initgraph(640, 480);
//BGM();
change();
getchar();
closegraph();
return 0;
}
第24,25行的区别在于,第24行上面的两个窗口是可以相互遮盖的,看下图
而第25行是不可以的,必须先解决你创建的窗口,选择“确定”或者“取消”,然后才能点“恭喜发财”的那个窗口。如果不点击,就无法拖动或者点击“恭喜发财”的那个窗口。
也可以在第24,25行变换一下代码。
//MessageBox()返回的值是int型整数,可以自行右键转到定义查看
int a=MessageBox(hnd, "恭喜你成功中奖500万", "提示", MB_OKCANCEL);
if (IDOK == a)
{
//当然,这里也可以是一些操作,比如恶搞别人的,当别人选了什么操作,给他跳转到其他页面或者让他重新选择
printf("你点击了OK\n");
}
if(IDCANCEL== a)
{
printf("你点击了CANCEL\n");
}
四:入门图形编程内心总结
到这里就结束了,其实也挺感慨的,国庆的时候刷抖音看到别人用代码运行出国旗,虽然现在看来已经很简单了,但那时之前从来没接触过这方面,都是在黑窗口运行结果解决问题的,一直都很好奇这方面,所以那时心血来潮,开始搜索相关消息,从下载软件开始到搜索教程,再到整理知识写到这上面和大家分享,其中确实遇到了一些困难,比如软件的下载,折腾了我一下午,下错几次。我也有点感慨,我的三分钟热度竟还挺持久的 (。・ω・。),当看到也有人一起学习时,我是真的开心的,就说到这吧。关于图形编程的基础就讲到这里了,拜,回见 ( ˘ ³˘)❤~(^◇^)/ 。
标签:EasyX,窗口,hnd,OKCANCEL,编程,BGM,C++,mciSendString,播放 From: https://blog.csdn.net/wcj_______/article/details/142756918