Mp3播放器(C写的)

#include<windows.h>
#include<mmsystem.h>
#include<digitalv.h>
#include<commctrl.h>
#include<stdio.h>
#include "resource.h"


int _GetFileName(TCHAR *FileName, HANDLE hwnd,char *lei)
{
 int i;
 int j;
 int len;
 char c[100]={0};
 char a[]="(*.)\0*.\0\0";
 OPENFILENAME  FileNames;
 static char  szFileName[MAX_PATH];
 static char  szTitleName [MAX_PATH] ;
    static TCHAR    szFilter[100] = {0};
 len = strlen(lei);
 c[0]=a[0];
 c[1]=a[1];
 c[2]=a[2];
 for(i=0;i<len;i++)
 {
  c[3+i]=lei[i];
 }
 c[3+i]=a[3];
 c[4+i]=a[4];
 c[5+i]=a[5];
 c[6+i]=a[6];
 for(j=0;j<len;j++)
 {
  c[7+i+j]=lei[j];
 }
 c[7+i+j]=a[7];
 c[8+i+j]=a[8];
 memcpy(szFilter, c,100);
    FileNames.lStructSize       = sizeof (OPENFILENAME) ;
          FileNames.hwndOwner         = hwnd ;
          FileNames.hInstance         = NULL ;
          FileNames.lpstrFilter       = szFilter ;
          FileNames.lpstrCustomFilter = NULL ;
          FileNames.nMaxCustFilter    = 0 ;
          FileNames.nFilterIndex      = 0 ;
          FileNames.lpstrFile         = szFileName ;
          FileNames.nMaxFile          = MAX_PATH ;
          FileNames.lpstrFileTitle    = szTitleName ;
          FileNames.nMaxFileTitle     = MAX_PATH ;
          FileNames.lpstrInitialDir   = NULL ;
          FileNames.lpstrTitle        = NULL ;
          FileNames.Flags             = 0 ;
          FileNames.nFileOffset       = 0 ;
          FileNames.nFileExtension    = 0 ;
          FileNames.lpstrDefExt       = NULL;
          FileNames.lCustData         = 0 ;
          FileNames.lpfnHook          = NULL ;
          FileNames.lpTemplateName    = NULL ;
 GetOpenFileName(&FileNames);
 for(i=0,j=0; szFileName[i]; i++,j++)
 {
  if(szFileName[i]=='\\')
  {
  FileName[j++] = szFileName[i];
  FileName[j]='\\';
  }
   else
   FileName[j]=szFileName[i];
  
 }
 FileName[j] = 0;
 return 0;
}

LONG CALLBACK
DlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
 static char FileName[250];

 static MCI_PLAY_PARMS mciPlay;
 static MCI_OPEN_PARMS mciOpen;
 static MCI_DGV_SETAUDIO_PARMS mciSetAudioPara;

 memset(FileName, 0, sizeof(FileName) );
 switch(message)
 {
 case WM_CLOSE:
  EndDialog( hwnd, 0);
  return 0;

 case WM_INITDIALOG:
  return 0;     

 case WM_COMMAND:
  switch(LOWORD(wParam) )
  {
  case IDB_SCAN:
   _GetFileName(FileName, hwnd, "mp3");
   SetDlgItemText(hwnd, IDC_EDIT, FileName);
   SetFocus(GetDlgItem(hwnd, IDB_PLAY) );
   return 0;

  case IDB_PLAY:
    mciSendCommand(0, MCI_OPEN, MCI_OPEN_ELEMENT, (DWORD)&mciOpen);
    mciOpen.lpstrElementName=(char *)malloc(250*sizeof(char));
    GetDlgItemText(hwnd, IDC_EDIT, mciOpen.lpstrElementName, 250);
    mciSendCommand(mciOpen.wDeviceID, MCI_PLAY, /*MCI_WAIT*/MCI_NOTIFY, (DWORD)&mciPlay);
   return 0;
  default:return 0;
  }
  return 0;

 default:return 0;
 }
}

LONG WINAPI
WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
 InitCommonControls();
 DialogBoxParam(hInstance, IDD_DIALOG1, NULL, DlgProc,NULL);
 return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值