桌面开满玫瑰花小程序之小小总结

来源:互联网 发布:淘宝直播在哪儿看 编辑:程序博客网 时间:2024/04/28 01:20

最近在CSDN首页上看到一个小程序,居然下载量已经快达到2000(http://download.csdn.net/detail/ligongda405/3498086)就这个原因,也得下下来瞄一下。看了之后,感觉创意确实不错,但是灰常灰常多的csdner反映:1.没有源码2.能再创新点就好。

终于功夫不负有心人,终于找到了资料:http://blog.csdn.net/xuezhimeng/article/details/3445820以及源码下载http://download.csdn.net/detail/xuezhimeng/837221,另外还得感谢这篇帖子:给了最初的思路(http://topic.csdn.net/u/20111102/20/d1fb35df-eda6-4004-b9a3-ced34855992b.html)以及这篇帖子:讲解了播放mp3的一种简单方法(http://topic.csdn.net/t/20031201/09/2512718.html)

我也小改了一下这个程序:1.用这么多花画心形,从外到里一层一层的画;2.同时播放mp3格式的音频文件(注意生成release版时需把你要同时播放的mp3与exe放在同一目录下);3.心形画完后,显示祝福的文字

        此版本源码下载地址:http://download.csdn.net/detail/nanfeiyannan/3846819

ps:记得生成release版本时,把所要播放的背景音乐与exe放在同一目录下;同时希望各位同仁有好的创意也能不吝分享。。。

小小收获如下:

1.strcat函数用法

strcat(a,b)a,b都是char *型,strcat就是把b指向的字符串接到a指向的字符串的尾部,并返回a,以便于函数连写.
2.播放mp3的一种简单方法:

播放MP3音乐 

MIDI音乐的问题是对声卡的依赖性过大,好声卡和差声卡的播放效果实在相差太远。WAV音乐虽然绝对足够精确,但占用的空间之大不可小视。MP3恐怕是一个较好的解决方案。值得注意的是,播放MP3并不需要DirectX   Audio,需要的是DirectShow。所以,我们要#include   <dshow.h> ,并在工程中加入strmiids.lib。
此处需下载DX9SDK(http://download.csdn.net/detail/nanfeiyannan/3846809)下载后把“目录\Include”及“目录\Lib”添加到VC的源目录中就可以使用。
2.1调入MP3文件: 
下面把初始化DirectShow和调入MP3合起来说说吧。首先,我们要定义三个对象,其中IGraphBuilder*类型的可以认为是媒体播放设备,IMediaControl*类型的变量负责媒体的播放控制,而IMediaPosition*类型的变量负责媒体的播放位置设定。

IGraphBuilder*   pGBuilder;
IMediaControl*   pMControl;
IMediaPosition*   pMPos;
CoInitialize(NULL);   //初始化COM
//创建各个对象
CoCreateInstance(CLSID_FilterGraph,   NULL,
CLSCTX_INPROC,   IID_IGraphBuilder,   (void**)&pGBuilder);
pGBuilder-> QueryInterface(IID_IMediaControl,   (void**)&pMControl);
pGBuilder-> QueryInterface(IID_IMediaPosition,   (void**)&pMPos);

CHAR   strSoundPath[MAX_PATH];   //存储音乐所在路径
WCHAR   wstrSoundPath[MAX_PATH];   //存储UNICODE形式的路径
GetCurrentDirectory(MAX_PATH,   strSoundPath);
strcat(strSoundPath,   "\\Sounds\\ ");
strcat(strSoundPath,   "a.mp3 ");   //假设要播放的是Sounds子目录下的a.mp3
MultiByteToWideChar(CP_ACP,   0,   strSoundPath,   -1,wstrSoundPath,   MAX_PATH);
pGBuilder-> RenderFile(wstrSoundPath,   NULL);   //调入文件

2.2播放MP3文件: 
播放MP3的方法十分简单:
pMPos-> put_CurrentPosition(0);   //移动到文件头
pMControl-> Run();   //播放

2.3停止播放和释放对象
最后,我们要停止播放音乐并释放各个对象:
pMControl-> Stop();   //停止播放
//释放对象
SAFE_RELEASE(pMControl);
SAFE_RELEASE(pMPos);
SAFE_RELEASE(pGBuilder);
CoUninitialize();   //释放COM 
3.显示文字:

char buf1[100]="祝";char buf2[100]="xxx";char buf3[100]="xxxxxxxx";HDC hdc2=::GetDC(NULL);int OldBkMode=::SetBkMode(hdc2,TRANSPARENT);HFONT myFont;myFont=CreateFont(150,0,0,0,FW_BLACK,FALSE,FALSE,FALSE,GB2312_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FIXED_PITCH|FF_MODERN,"楷体");
SelectObject(hdc2,myFont); //选入字体SetTextColor(hdc2,RGB(255,64,64)); TextOut(hdc2,630,400,buf1,strlen(buf1));Sleep(2000);SetTextColor(hdc2,RGB(138,43,226)); TextOut(hdc2,500,250,buf2,strlen(buf2));Sleep(2000);SetTextColor(hdc2,RGB(255,0,255)); TextOut(hdc2,180,100,buf3,strlen(buf3));ReleaseDC(NULL,hdc2);


原创粉丝点击