桌面开满玫瑰花小程序之小小总结
来源:互联网 发布:淘宝直播在哪儿看 编辑:程序博客网 时间: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);
- 桌面开满玫瑰花小程序之小小总结
- 第三篇 一个屏幕开满玫瑰花的程序
- 玫瑰花程序
- 一个小小小 程序!
- 桌面下雪小程序
- 玫瑰花Java web程序
- 七夕到了, 很漂亮的生成3D红玫瑰花的小小程序的源码,七夕特别制作
- 菜鸟之路-android桌面小控件总结
- 小小总结之输入确认
- 集合框架之小小总结
- 小王子,玫瑰花和小狐狸
- android 桌面程序 滑动抽屉 SlidingDraw,一个小小的demo
- 小小小总结3/16 有关服务器
- 桌面下雪小程序 WIN32
- 玫瑰花
- 玫瑰花
- 玫瑰花
- 玫瑰花
- Android 轻松实现语音识别
- web前端开发学习经验总结
- vi,gvim UTF8编码乱码解决
- Asynchronous Servlets
- UC3842好坏的判断方法
- 桌面开满玫瑰花小程序之小小总结
- 使用View来制作专业的分隔线
- TCP阻塞控制
- oracle 与 sqlserver 区别
- 选择排序
- Delphi语言基础
- 网页背景图自动伸缩
- 链表的排序和逆序
- 诡异的代码之数组越界造成的死循环