C/C++/EasyX——入门图形编程(6)

【说明】hello,友友们,这一章是我写的入门图形编程的最后一章了,内容也不多,希望你们学的开心 (^~^)。顺便说一下,现在的我对一些基础操作的小游戏挺感兴趣的,之后也许会把代码教程写出来,动个小手点赞支持一下吧。敬请期待ヽ(*≧ω≦)ノ,

一:内容介绍

这一篇讲的是如何在黑窗口上播放音乐以及如何修改窗口标题、弹出对话框。

二:基础知识

windowsAPI 播放音乐:

为了实现C语言播放音乐,需要用到 windows 的一个API

1.需要包含头文件 windows.h和 mmsystem.h(如果已经包含了 graphics.h,则无需包含)

2.需要加载静态库 winmm.lib

3.最后用 mciSendString函数来播放音乐就可以了

使用方法:

cs 复制代码
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是窗口中显示的 "确定,取消",如果想换成其他的,可以右键转到定义

窗口句柄及标题:

模态对话框:

三:代码

cs 复制代码
#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行变换一下代码。

cs 复制代码
//MessageBox()返回的值是int型整数,可以自行右键转到定义查看
int a=MessageBox(hnd, "恭喜你成功中奖500万", "提示", MB_OKCANCEL);
if (IDOK == a)
{
	//当然,这里也可以是一些操作,比如恶搞别人的,当别人选了什么操作,给他跳转到其他页面或者让他重新选择
	printf("你点击了OK\n");
}
if(IDCANCEL== a)
{
	printf("你点击了CANCEL\n");
}

四:入门图形编程内心总结

到这里就结束了,其实也挺感慨的,国庆的时候刷抖音看到别人用代码运行出国旗,虽然现在看来已经很简单了,但那时之前从来没接触过这方面,都是在黑窗口运行结果解决问题的,一直都很好奇这方面,所以那时心血来潮,开始搜索相关消息,从下载软件开始到搜索教程,再到整理知识写到这上面和大家分享,其中确实遇到了一些困难,比如软件的下载,折腾了我一下午,下错几次。我也有点感慨,我的三分钟热度竟还挺持久的 (。・ω・。),当看到也有人一起学习时,我是真的开心的,就说到这吧。关于图形编程的基础就讲到这里了,拜,回见 ( ˘ ³˘)❤~(^◇^)/ 。

相关推荐
陌小呆^O^2 分钟前
Cmakelist.txt之win-c-udp-server
c语言·开发语言·udp
C++忠实粉丝2 分钟前
计算机网络socket编程(3)_UDP网络编程实现简单聊天室
linux·网络·c++·网络协议·计算机网络·udp
时光の尘23 分钟前
C语言菜鸟入门·关键字·float以及double的用法
运维·服务器·c语言·开发语言·stm32·单片机·c
我们的五年28 分钟前
【Linux课程学习】:进程描述---PCB(Process Control Block)
linux·运维·c++
-一杯为品-32 分钟前
【51单片机】程序实验5&6.独立按键-矩阵按键
c语言·笔记·学习·51单片机·硬件工程
程序猿阿伟44 分钟前
《C++ 实现区块链:区块时间戳的存储与验证机制解析》
开发语言·c++·区块链
VernonJsn1 小时前
visual studio 2005的MFC各种线程函数之间的调用关系
ide·mfc·visual studio
戎梓漩1 小时前
windows下安装curl,并集成到visual studio
ide·windows·visual studio
爱摸鱼的孔乙己1 小时前
【数据结构】链表(leetcode)
c语言·数据结构·c++·链表·csdn
Dola_Pan1 小时前
C语言:数组转换指针的时机
c语言·开发语言·算法