今儿个,咱来聊聊怎么让电脑发出“嘀”的一声。别小看这简单的一声“嘀”,有时候还挺有用的。我琢磨这事儿,也是因为最近在写一个小工具,需要在特定情况下给用户一个声音提示,总不能每次都弹个大窗口,太吓人。
折腾开始
我想着这还不简单,网上搜一下肯定一堆现成的代码。结果,搜是搜到,一堆英文,看着头大。还找到不少MessageBeep的资料,说是调用这个就能发出声音。
我心想这名字听起来就挺靠谱,MessageBeep,消息蜂鸣,不就是我要找的吗?
动手试试
我赶紧打开我的IDE,新建一个项目,把网上的示例代码复制粘贴进去。别说,还真挺简单,就一行代码:
MessageBeep(MB_OK);

这MB_OK
是管他,先跑起来再说。
我满怀期待地按下运行按钮,还真响!就是这声音,跟我想象的有点不一样,不是那种清脆的“嘀”,倒像是系统提示音。
继续研究
这不行,我要的是那种“嘀”的一声,不是系统提示音。我又回去翻翻网上的资料,发现原来MessageBeep
这个函数可以带参数,不同的参数可以发出不同的声音。
这下有意思,我看到一堆参数:
MB_OK
MB_ICONHAND
MB_ICONQUESTION
MB_ICONEXCLAMATION
MB_ICONASTERISK
这么多参数,看得我眼花缭乱。我一个个试过去,发现这些参数发出的都是不同的系统提示音,像什么警告、错误之类的。看来,这些参数都是用来播放系统预设的声音的,不是我想要的。
找到关键
然后,我接着往下看,看到有人提到,要用<windows.h>
这个头文件,我赶紧把这个头文件加到我的代码里。这一步很重要,要是没有它,程序都跑不起来。
最终实现
我试着把参数改成-1。
MessageBeep(-1);
运行!这回终于是我想听的“嘀”声!成功!
回顾整个过程,为想实现发出“嘀”的一声的效果,从对MessageBeep函数不解到查阅分析资料再到实践,最终实现想要的效果,还是很有成就感的。