效果如下,C + GDI 编写的一个简单的播放器,代码也很简单,可以参考一下。貌似上传的附件找不到在哪啊,明明上传了的。 

 

个性化界面的自绘_C语言

 

  1. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
  2. // 函数声明  
  3. //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
  4.  
  5. // 必要的函数声明  
  6.  
  7. DWORD WINAPI CTL_MAIN(UINT,PVOID,PVOID);                      // 必须声明的函数,也是最重的,几乎所有控制代码都在该函数里  
  8.  
  9. // 非必要的  函数声明  
  10. /*             界面管理                  */  
  11. HFONT BuildFont(DWORD,LPSTR);                                             // 创建字体  
  12. VOID CreateClickBmp(HWND,UINT,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD);       // BMP复制,刷新  
  13. VOID DrawColorRect(RECT*,COLORREF);                                       // 画矩形,不刷新  
  14. VOID DrawSpectrum(HWND);                                                  // 画频谱,刷新  
  15. VOID DrawProgress(HWND,int);                                              // 画进度条,刷新  
  16. BOOL TextPrint(HWND,int,int,int,BOOL,LPSTR,COLORREF,HFONT);               // 文字输出,刷新,如果字体为NULL,使用默认字体(12号,宋体)  
  17. VOID CreateBackGroud(HWND,UINT);                                          // 创建时显示背景,只调用一次  
  18. VOID Init(HWND);                                                          // 初始化,主要是画界面,也包括字体,在 CTL_PRO_START 之后  
  19. VOID OnMouseClick(HWND,LPARAM);                                           // 鼠标单击,主要是判读 鼠标位置和控件的关系  
  20. LRESULT CALLBACK ProcMain(HWND,UINT,WPARAM,LPARAM);                       // 消息处理  
  21. int main(int argc,char** argv);                                           // main 函数,主要是 窗口创建 和 消息循环  
  22. /*             文件操作                  */                    
  23. LPSTR IsFileEx(LPCSTR,LPCSTR);                                            // 判断文件后缀  
  24. BOOL  GetMP3Info(LPCSTR,LPSTR);                                           // 获得 MP3 文件信息,其他文件类型 简单的用文件名代替  
  25. BOOL  File_Add_File(LPCSTR,HWND);                                         // 向 文件链表 头部 添加一个 文件,如果链表为空,就显示该文件  
  26. UINT  File_Add_Dir(LPCSTR,HWND);                                          // 向 文件链表 添加一个文件夹里的文件,返回添加的文件数  
  27. DWORD File_Search_File(UINT,LPVOID);                                      // 链表搜索有关,如 链表输出,删除节点,搜索节点  
  28. BOOL  File_Save_List(LPCSTR);                                             // 保存链表到文件,程序关闭时(CTL_PRO_CLOSE)调用  
  29. BOOL  File_Load_List(LPCSTR,HWND);                                        // 加载文件列表,程序开始时(CTL_PRO_START)尝试  
  30. /*             播放代码                 */  
  31. BOOL MM_Operation(DWORD,LPVOID);                                          // mciSendString  
  32. /*             CTL_MAIN                 */  
  33. DWORD WINAPI CTL_MAIN(UINT,PVOID,PVOID);                                  // 控制函数,相当大的一个函数,当然也是最重要的部分