1、mfc播放器class CMyApp:public CWinApppublic:virtual BOOL InitInstance();class CMainWindow:public CFrameWndpublic:afx_msg void OnMouseMove(UINT nFlags,CPoint point);protected:HWND m_hMyMCIWnd;CListBox ListBox1;CButton btn;CButton btn1;CButton btn2;CButton btn3;CButton clo;CButton open;CButton loop;CButto
2、n loop1;CButton loop2;CButton loop3;CPalette m_palette;void DoGradientFill(CDC* pDC,LPRECT pRect);CString GetSuffix(CString strFileName);CBrush m_brRedBrush;CBrush m_brush;CFont font;CFont font1;int x,y;int h;int work;int xop,yop;CString FileString;public:CMainWindow();protected:static const TCHAR s
3、zFilters1;static const TCHAR szFilters2;afx_msg void OnLButtonDown(UINT nFlags,CPoint point);afx_msg void OnLButtonUp(UINT nFlags,CPoint point);afx_msg BOOL OnMouseWheel(UINT nFlags,short zDelta,CPoint point);afx_msg int OnCreate(LPCREATESTRUCT lpcs);afx_msg LRESULT OnMCINotify(WPARAM wParam,LPARAM
4、lParam);afx_msg void OnBtnClick();afx_msg void OnBtnClick1();afx_msg void OnBtnClick2(); afx_msg void OnBtnClick3();afx_msg void OnBtnClick4();afx_msg void OnBtnClick5();afx_msg void OnCheckClick();afx_msg void OnCheckClick1();afx_msg void OnCheckClick2();afx_msg void OnCheckClick3();afx_msg void On
5、Timer(UINT nTimerID);afx_msg void OnSize(UINT nType,int cx,int cy);afx_msg BOOL OnEraseBkgnd(CDC* pDC);afx_msg HBRUSH OnCtlColor(CDC* pDC,CWnd *pWnd,UINT nCtlColor); DECLARE_MESSAGE_MAP();/窗体代码Player.cpp#include #include Player.h#include VolumeControl.h#include #include #include math.h#pragma commen
6、t(lib,vfw32.lib)#define IDC_LISTBOX 1000#define IDC_OPEN 1001#define IDC_OPEN1 1002#define IDC_OPEN2 1003#define IDC_OPEN3 1004#define IDC_OPEN4 1007#define IDC_CLOSE 1005#define IDC_MAIN 1006#define IDC_CHECK 1008#define IDC_CHECK1 1009#define IDC_CHECK2 1010#define IDC_CHECK3 1011CMyApp myApp;cons
7、t TCHAR CMainWindow:szFilters1=_T(Sound Files (*.mp3) | *.mp3|All Files (*.*) | *.*|);const TCHAR CMainWindow:szFilters2=_T(Movie Files (*.avi) | *.avi|All Files (*.*) | *.*|);UINT nSound;CString str1,str,name,filename;int sign=1,nVolume,length,count=0;ControlWindow *con;BOOL Eloop=FALSE,Eloop1=FALS
8、E,Eloop2=FALSE,flag=FALSE,Eloop3=FALSE;int Index=0;BOOL CMyApp:InitInstance()m_pMainWnd=new CMainWindow;m_pMainWnd-ShowWindow(m_nCmdShow);m_pMainWnd-UpdateWindow();return TRUE;BEGIN_MESSAGE_MAP(CMainWindow,CFrameWnd)ON_WM_CREATE()ON_BN_CLICKED(IDC_OPEN,OnBtnClick)ON_BN_CLICKED(IDC_OPEN1,OnBtnClick1)
9、ON_BN_CLICKED(IDC_OPEN2,OnBtnClick2)ON_BN_CLICKED(IDC_OPEN3,OnBtnClick3) ON_BN_CLICKED(IDC_CLOSE,OnBtnClick4)ON_BN_CLICKED(IDC_OPEN4,OnBtnClick5)ON_BN_CLICKED(IDC_CHECK,OnCheckClick)ON_BN_CLICKED(IDC_CHECK1,OnCheckClick1)ON_BN_CLICKED(IDC_CHECK2,OnCheckClick2)ON_BN_CLICKED(IDC_CHECK3,OnCheckClick3)O
10、N_WM_ERASEBKGND()ON_WM_CTLCOLOR()ON_WM_SIZE()ON_WM_TIMER()ON_WM_MOUSEWHEEL()ON_MESSAGE(MCIWNDF_NOTIFYMODE,OnMCINotify)ON_WM_LBUTTONDOWN()ON_WM_LBUTTONUP()ON_WM_MOUSEMOVE()END_MESSAGE_MAP()CMainWindow:CMainWindow()Create(NULL,_T(Player),WS_POPUPWINDOW,CRect(100,100,620,610),this);int CMainWindow:OnCr
11、eate(LPCREATESTRUCT lpcs)if (CFrameWnd:OnCreate(lpcs)=-1) return -1;/CoInitializeExCClientDC dc(this);:SetWindowPos(m_hWnd,HWND_TOPMOST,100,100,620,610,WS_EX_TOPMOST);con=new ControlWindow();/con-ShowWindow(SW_SHOW);if (dc.GetDeviceCaps(RASTERCAPS) & RC_PALETTE) struct LOGPALETTE lp; PALETTEENTRY ap
12、e63; pal; LOGPALETTE* pLP=(LOGPALETTE*) &pal; pLP-palVersion=0x300; pLP-palNumEntries=64; for (int i=0;ipalPalEntryi.peRed=0; pLP-palPalEntryi.peGreen=0; pLP-palPalEntryi.peBlue=255-(i*4); pLP-palPalEntryi.peFlags=0; m_palette.CreatePalette(pLP);font1.CreatePointFont(80,_T(MS Sans Serif);CRect rect;
13、rect.SetRect(110,450,210,465);loop.Create(单曲循环,WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON,rect,this,IDC_CHECK);loop.SetFont(&font1);rect.SetRect(110,470,210,485);loop1.Create(列表循环,WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON,rect,this,IDC_CHECK1);loop1.SetFont(&font1);rect.SetRect(200,450,300,465);loo
14、p2.Create(单曲播放,WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON,rect,this,IDC_CHECK2);loop2.SetFont(&font1);loop2.SetCheck(BST_CHECKED);rect.SetRect(200,470,300,485);loop3.Create(顺序播放,WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON,rect,this,IDC_CHECK3);loop3.SetFont(&font1);rect.SetRect(10,444,50,484);clo.Cre
15、ate(NULL,WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON | BS_ICON | WS_BORDER,rect,this,IDC_CLOSE);clo.SetIcon(AfxGetApp()-LoadIcon(_T(IDI_ICON5);rect.SetRect(460,444,500,484);open.Create(NULL,WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON | BS_ICON | WS_BORDER,rect,this,IDC_OPEN4);open.SetIcon(AfxGetApp()-Load
16、Icon(_T(IDI_ICON7);rect.SetRect(300,444,340,484);btn.Create(NULL,WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON | BS_ICON | WS_BORDER,rect,this,IDC_OPEN);btn.SetIcon(AfxGetApp()-LoadIcon(_T(IDI_ICON1);rect.SetRect(340,444,380,484);btn2.Create(NULL,WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON | BS_ICON | WS_BO
17、RDER,rect,this,IDC_OPEN2);btn2.SetIcon(AfxGetApp()-LoadIcon(_T(IDI_ICON3);rect.SetRect(380,444,420,484);btn1.Create(NULL,WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON | BS_ICON | WS_BORDER,rect,this,IDC_OPEN1);btn1.SetIcon(AfxGetApp()-LoadIcon(_T(IDI_ICON2);rect.SetRect(420,444,460,484);btn3.Create(NULL,
18、WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON | BS_ICON | WS_BORDER,rect,this,IDC_OPEN3);btn3.SetIcon(AfxGetApp()-LoadIcon(_T(IDI_ICON4);/bitmap.m_hObject=(HBITMAP):LoadImage(AfxGetInstanceHandle(),b.bmp,IMAGE_BITMAP,110,40,LR_LOADFROMFILE);/CClientDC dc1(this);/CBitmap bitmap;/bitmap.LoadBitmap(_T(IDB_B
19、ITMAP1);/CBrush brush(&bitmap);/dc1.FillRect(CRect(390,445,500,485),&brush);rect.SetRect(370,5,505,430);ListBox1.Create(WS_CHILD | WS_VISIBLE | LBS_STANDARD | WS_BORDER ,rect,this,IDC_LISTBOX);font.CreatePointFont(100,_T(MS Scans Serif); ListBox1.SetFont(&font);if (!MCIWndRegisterClass() MessageBox(
20、初始化未成功);/m_hMyMCIWnd=MCIWndCreate(this-m_hWnd,AfxGetInstanceHandle(),MCIWNDF_NOTIFYSIZE | MCIWNDF_NOERRORDLG | MCIWNDF_NOTIFYMODE | WS_CHILD | WS_VISIBLE | WS_BORDER | MCIWNDF_NOMENU,NULL);/m_hMyMCIWnd=MCIWndCreate(this-GetSafeHwnd(),AfxGetInstanceHandle(),WS_CHILD | WS_VISIBLE | MCIWNDF_NOPLAYBAR |
21、 MCIWNDF_NOMENU | MCIWNDF_NOTIFYMODE | WS_BORDER,NULL);/nVolume=MCIWndGetVolume(m_hMyMCIWnd);BOOL CMainWindow:OnEraseBkgnd(CDC* pDC)CRect rect;GetClientRect(&rect);:SetWindowPos(m_hMyMCIWnd,NULL,3,3,3,3,SWP_NOZORDER);CPalette* pOldPalette;if (HPALETTE)m_palette!=NULL) pOldPalette=pDC-SelectPalette(&
22、m_palette,FALSE); pDC-RealizePalette();DoGradientFill(pDC,&rect);if (HPALETTE) m_palette!=NULL) pDC-SelectPalette(pOldPalette,FALSE);return TRUE;void CMainWindow:OnBtnClick1()ListBox1.DeleteString(ListBox1.GetCurSel();void CMainWindow:OnBtnClick2()CFileDialog dlg(TRUE,_T(avi),_T(*.avi),OFN_FILEMUSTE
23、XIST | OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT,szFilters2); if (dlg.DoModal()=IDOK) m_hMyMCIWnd=MCIWndCreate(this-GetSafeHwnd(),AfxGetInstanceHandle(),WS_CHILD | WS_VISIBLE | MCIWNDF_NOPLAYBAR | MCIWNDF_NOMENU | MCIWNDF_NOTIFYMODE | WS_BORDER,NULL); nVolume=MCIWndGetVolume(m_hMyMCIWnd); name=dlg.Get
24、FileName();MCIWndStop(m_hMyMCIWnd); ListBox1.AddString(name);filename=name;if (filename.GetLength()0 & GetSuffix(filename)=avi) nSound=MCIWndOpen(m_hMyMCIWnd,(LPCSTR)filename,NULL); :SetWindowPos(m_hMyMCIWnd,NULL,3,3,400,400,SWP_NOZORDER); HRGN hRgn1=:CreateRoundRectRgn(3,3,400,400,20,20); :SetWindo
25、wRgn(m_hMyMCIWnd,hRgn1,TRUE); if (nSound=0) MCIWndPlay(m_hMyMCIWnd); con-m_slider.EnableWindow(TRUE); con-m_slider1.EnableWindow(TRUE); SetTimer(1,1000,NULL); else /MCIWndDestroy(m_hMyMCIWnd); MessageBox(_T(没有读出文件),0,MB_OK);void CMainWindow:OnBtnClick3()for(int i=0;iCloseWindow();this-DestroyWindow(
26、);void CMainWindow:OnBtnClick5()count+;if (count%2=0) con-ShowWindow(SW_SHOW); open.SetIcon(AfxGetApp()-LoadIcon(IDI_ICON7);else con-ShowWindow(SW_HIDE); open.SetIcon(AfxGetApp()-LoadIcon(IDI_ICON8);void CMainWindow:OnBtnClick()CFileDialog dlg(TRUE,_T(mp3),_T(*.mp3),OFN_FILEMUSTEXIST | OFN_HIDEREADO
27、NLY | OFN_ALLOWMULTISELECT,szFilters1); if (dlg.DoModal()=IDOK) m_hMyMCIWnd=MCIWndCreate(this-GetSafeHwnd(),AfxGetInstanceHandle(),WS_CHILD | WS_VISIBLE | MCIWNDF_NOPLAYBAR | MCIWNDF_NOMENU | MCIWNDF_NOTIFYMODE | WS_BORDER,NULL); nVolume=MCIWndGetVolume(m_hMyMCIWnd); name=dlg.GetFileName(); MCIWndSt
28、op(m_hMyMCIWnd); ListBox1.AddString(name);filename=name;if (filename.GetLength()0 & GetSuffix(filename)=mp3) nSound=MCIWndOpen(m_hMyMCIWnd,(LPCSTR)filename,NULL); if (nSound=0) MCIWndPlay(m_hMyMCIWnd); con-m_slider.EnableWindow(TRUE); con-m_slider1.EnableWindow(TRUE); SetTimer(1,1000,NULL); else /MC
29、IWndDestroy(m_hMyMCIWnd); MessageBox(_T(没有读出文件),0,MB_OK);CString CMainWindow:GetSuffix(CString strFileName) return strFileName.Right(strFileName.GetLength()-strFileName.ReverseFind(.)-1); LRESULT CMainWindow:OnMCINotify(WPARAM wParam,LPARAM lParam)if(wParam=MCI_MODE_STOP) MessageBox(结束); /MCIWndDestroy(m_hMyMCIWnd);return TRUE;void CMainWindow:DoGradientFill(CDC* pDC,LPRECT pRect)CBrush *brush3255;TRYCBrush*
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1