效果如下,C + GDI 编写的一个简单的播放器,代码也很简单,可以参考一下。貌似上传的附件找不到在哪啊,明明上传了的。
- //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- // 函数声明
- //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- // 必要的函数声明
- DWORD WINAPI CTL_MAIN(UINT,PVOID,PVOID); // 必须声明的函数,也是最重的,几乎所有控制代码都在该函数里
- // 非必要的 函数声明
- /* 界面管理 */
- HFONT BuildFont(DWORD,LPSTR); // 创建字体
- VOID CreateClickBmp(HWND,UINT,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD); // BMP复制,刷新
- VOID DrawColorRect(RECT*,COLORREF); // 画矩形,不刷新
- VOID DrawSpectrum(HWND); // 画频谱,刷新
- VOID DrawProgress(HWND,int); // 画进度条,刷新
- BOOL TextPrint(HWND,int,int,int,BOOL,LPSTR,COLORREF,HFONT); // 文字输出,刷新,如果字体为NULL,使用默认字体(12号,宋体)
- VOID CreateBackGroud(HWND,UINT); // 创建时显示背景,只调用一次
- VOID Init(HWND); // 初始化,主要是画界面,也包括字体,在 CTL_PRO_START 之后
- VOID OnMouseClick(HWND,LPARAM); // 鼠标单击,主要是判读 鼠标位置和控件的关系
- LRESULT CALLBACK ProcMain(HWND,UINT,WPARAM,LPARAM); // 消息处理
- int main(int argc,char** argv); // main 函数,主要是 窗口创建 和 消息循环
- /* 文件操作 */
- LPSTR IsFileEx(LPCSTR,LPCSTR); // 判断文件后缀
- BOOL GetMP3Info(LPCSTR,LPSTR); // 获得 MP3 文件信息,其他文件类型 简单的用文件名代替
- BOOL File_Add_File(LPCSTR,HWND); // 向 文件链表 头部 添加一个 文件,如果链表为空,就显示该文件
- UINT File_Add_Dir(LPCSTR,HWND); // 向 文件链表 添加一个文件夹里的文件,返回添加的文件数
- DWORD File_Search_File(UINT,LPVOID); // 链表搜索有关,如 链表输出,删除节点,搜索节点
- BOOL File_Save_List(LPCSTR); // 保存链表到文件,程序关闭时(CTL_PRO_CLOSE)调用
- BOOL File_Load_List(LPCSTR,HWND); // 加载文件列表,程序开始时(CTL_PRO_START)尝试
- /* 播放代码 */
- BOOL MM_Operation(DWORD,LPVOID); // mciSendString
- /* CTL_MAIN */
- DWORD WINAPI CTL_MAIN(UINT,PVOID,PVOID); // 控制函数,相当大的一个函数,当然也是最重要的部分
转载于:https://blog.51cto.com/2497888/546047