vc++課程設(shè)計(jì)報(bào)告講解學(xué)習(xí)_第1頁
vc++課程設(shè)計(jì)報(bào)告講解學(xué)習(xí)_第2頁
vc++課程設(shè)計(jì)報(bào)告講解學(xué)習(xí)_第3頁
vc++課程設(shè)計(jì)報(bào)告講解學(xué)習(xí)_第4頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、資料收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除福建工程學(xué)院VC+課程設(shè)計(jì)課題:音頻播放器班級:通信 1202學(xué)號:3120210114姓名:陳李萍同組組員 :林志濱 林劍花 陳李萍熊建朱煒明 周士煒 馬率杰word 可編輯資料收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除指導(dǎo)老師:黃旭紅林挺釗陳健日期: 2013/11/25 11/29目 錄一、設(shè)計(jì)目的與要求3二、準(zhǔn)備工作3三、系統(tǒng)分析及實(shí)現(xiàn)步驟33.1、系統(tǒng)實(shí)現(xiàn)的方法33.2、程序設(shè)計(jì)的總框圖43.3、項(xiàng)目的具體設(shè)計(jì)方案(設(shè)計(jì)原理與流程圖等) 43.4 擴(kuò)展部分(根據(jù)實(shí)際情況而定,如果沒有擴(kuò)展部分,則不寫)93.5 類聲明與核心算法程序代碼 12四、測試與結(jié)論

2、20五、課程設(shè)計(jì)總結(jié)24六、參考文獻(xiàn)25七、附錄25word 可編輯資料收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除一、設(shè)計(jì)的目的與要求多媒體技術(shù)的發(fā)展使得計(jì)算機(jī)應(yīng)用范圍更加廣泛,目前各類多媒體播放軟件層出不窮。試開發(fā)一個(gè)簡易的音頻播放器,求如下:1、菜單式的人機(jī)界面。2、具有打開、播放、停止、暫停、定時(shí)播放的功能。3、可控制音量、左右聲道、靜音。4、具有顯示音頻波形的特效。二、準(zhǔn)備工作在開始做課程設(shè)計(jì)項(xiàng)目前應(yīng):1、應(yīng)回顧或復(fù)習(xí)C+專業(yè)課所學(xué)習(xí)的內(nèi)容,及課外編程實(shí)例2、需要一臺 PC機(jī)3、安裝 Visual C+6.0集成開發(fā)環(huán)境軟件4、項(xiàng)目主要用到的函數(shù)OnAdd()添加功能StoreList()、R

3、eadList()播放列表功能On Clear()清空播放列表功能OnPlayOrPause()播放 / 暫停功能SetVolumee、 Oninvolume() 、音量功能Ondevolume()BOOL LineTo() MoveToEx()波形顯示GetDlgItem ()定時(shí)播放功能Getwindowtext ()SetWindowText()word 可編輯資料收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除三、系統(tǒng)分析與項(xiàng)目的實(shí)現(xiàn)步驟3.1 、系統(tǒng)實(shí)現(xiàn)的方法:MFC 類庫將所有圖形用戶界面的元素如窗口、 菜單和按鈕等都以類的形式進(jìn)行了封裝, MFC AppWizard向?qū)Ц鶕?jù)繼承性利用 MFC派

4、生出自己的類,并對 Windows應(yīng)用程序進(jìn)行了分解,利用 MFC派生類對應(yīng)用程序重新進(jìn)行組裝,同時(shí)還規(guī)定了應(yīng)用程序中各個(gè) MFC派生類對象之間的相互聯(lián)系,實(shí)現(xiàn)了標(biāo)準(zhǔn) Windows應(yīng)用程序的功能,這就是向?qū)傻乃^ MFC應(yīng)用程序框架。每個(gè) MFC類都包括了一些函數(shù),函數(shù)放到類中,符合C+編程方法。這些函數(shù),必須通過類定義對象才能使用。在本次設(shè)計(jì)中,首先,理清課程設(shè)計(jì)和編寫程序的思路,明確程序中所要用到的函數(shù),并做好了解。然后,再利用 C+類的繼承與派生原理來構(gòu)造所需要的類,編寫實(shí)現(xiàn)每項(xiàng)功能的詳細(xì)代碼。 利用 MFC提供的菜單資源來創(chuàng)建菜單, 通過類向?qū)Ы㈩悾?函數(shù),或者消息響應(yīng),來實(shí)現(xiàn)

5、播放器的各種功能。采用不同的 Windows提供的坐標(biāo)系統(tǒng)和對話框資源,并利用設(shè)備環(huán)境來繪制和更新圖形,使播放器的界面更加美觀 , 實(shí)現(xiàn)較好的人機(jī)交互界面。畫出系統(tǒng)模塊功能圖:word 可編輯資料收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除3.2 、程序設(shè)計(jì)的總框圖開始添加音樂及視頻暫停播放停止播放結(jié)束退出3.3 、項(xiàng)目的具體設(shè)計(jì)方案設(shè)計(jì)原理:MP3播放器主要對常用 Windows音頻格式的文件實(shí)現(xiàn)播控制: 播放歌曲、暫停播放、停止播放等;實(shí)現(xiàn)音量控制:靜音、聲音放大以及聲音減小的功能。此播放器編寫的時(shí)候,利用的是 MFC單文檔程序的構(gòu)成框架, 然后再利用 Windows提供的資源,運(yùn)用控件,自己制作對

6、話框和人機(jī)交互界面。在制作界面的同時(shí),也制作各個(gè)按鈕,并完成各個(gè)按鈕的消息響應(yīng),便完成響應(yīng)函數(shù),實(shí)現(xiàn)了功能。MFC類庫將所有圖形用戶界面的元素如窗口、菜單和按鈕等都以類的形式進(jìn)行了封裝, MFCAppWizard 向?qū)Ц鶕?jù)繼承性利用 MFC 派生出自己的類,并對 Windows應(yīng)用程序進(jìn)行了分解,利用 MFC派生類對應(yīng)用程序重新進(jìn)行組裝,同時(shí)還規(guī)定了應(yīng)用程序中各個(gè) MFC派生類對象之間的相互聯(lián)系,實(shí)現(xiàn)了標(biāo)準(zhǔn)Windows應(yīng)用程序的功能,這就是向?qū)傻乃^ MFC應(yīng)用程序框架。每個(gè) MFC類都包括了一些函數(shù),函數(shù)放到類中,符合 C+編程方法。這些函數(shù),必須通過類定義對象才能使用。在本次設(shè)計(jì)中,

7、首先,理清課程設(shè)計(jì)和編寫程序的思路,明確程序所要用到的函數(shù),并做好了解。然后,再利用 C+類的繼承與派生原理來構(gòu)造所需要的類,編寫實(shí)現(xiàn)每項(xiàng)功能的詳細(xì)代碼。利用 MFC提供的菜單資源來創(chuàng)建菜單,通過類向?qū)Ы㈩?,函?shù),或者消息響應(yīng),來實(shí)現(xiàn)播放器的各種功能。word 可編輯資料收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除1、人機(jī)界面設(shè)計(jì)播放器界面設(shè)計(jì) 打開 VC C+6.0 新建一個(gè)工程,選擇對話框。便生成了一個(gè)窗口。然后打開 ResouceView,點(diǎn)開 Dialog ,插入 Dialog ,利用控件,繪制各按鈕。如圖所示:2、添加 media player控件 如圖所示:word 可編輯資料收集于網(wǎng)絡(luò),

8、如有侵權(quán)請聯(lián)系網(wǎng)站刪除3、各按鈕功能的實(shí)現(xiàn)( 1)處理“添加文件”按鈕單擊“添加文件”按鈕后,在 Onopen()函數(shù)中 , 首先對文件類型進(jìn)行過濾,調(diào)用OpenFiles() 函數(shù)打開對話框選擇一個(gè)音頻文件,通過InitPath()函數(shù)獲取文件路徑,通過InitPath()函數(shù)獲取文件名后,調(diào)用SaveList()函數(shù)在 StaticText 控件上顯示你所選擇的歌曲文件名,然后再單擊播放按鈕,便可以播放歌曲。3.4 擴(kuò)展部分1.簡單聲音錄制與播放vmf 庫中提供了一組錄制聲音的函數(shù),通過MCIWndCanRecord 函數(shù)可以判斷系統(tǒng)能否錄制聲音,通過函數(shù) MCIWndRecord 可以進(jìn)

9、行聲音錄制。 如果要播放錄制的聲音可以使用 MCIWndPlay 函數(shù)。界面設(shè)計(jì)如下:2. 視頻播放運(yùn)用 Windows media player 控件可以支持播放多種格式的音樂和視頻, Windows media player 控件不是系統(tǒng)默認(rèn)控件,所以需要向該工程中添加該控件,視頻播放展示:word 可編輯資料收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除3.5 類聲明與核心算法程序代碼1. 類與函數(shù)層次介紹CMP3_1DlgPausePlaySetVolumnStopLoad圖 7-1-a 類與函數(shù)層次關(guān)系圖Pause: 暫態(tài)正在播放的音樂Play :控制音樂播放Stop:停止播放音樂Load:加載

10、播放的音樂RetVolumn: 設(shè)置音樂播放音量2. 核心代碼功能介紹BOOL CMP3_1Dlg:OnInitDialog()/系統(tǒng)參數(shù)初始化函數(shù)CDialog:OnInitDialog();.SetWindowPos(NULL,0,0,480,340,SWP_NOMOVE);/界面無相對移動m_channel.SetRange(0,200);/ 設(shè)置左右聲道滑塊范圍 m_channel.SetPos(100);/ 設(shè)置左右聲道滑塊初始范圍/ TODO: Add extra initialization herefor(int i=0;i<24;i+)/定時(shí)器設(shè)置時(shí)CString te

11、mp;temp.Format("%02d",i);m_hour.AddString(temp);word 可編輯資料收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除for(int p=0;p<60;p+)/定時(shí)器設(shè)置分CString temp;temp.Format("%02d",p);m_minu.AddString(temp);return TRUE; / return TRUE unless you set the focus to a controlvoid CMP3_1Dlg:OnOpen() /添加文件到播放列表函數(shù)/ TODO: Add your

12、control notification handler code here char szFileFilter="Mp3 File(*.mp3)|*.mp3|""Wma File(*.wma)|*.wma|" "Video File(*.dat)|*.dat|" "Wave File(*.wav)|*.wav|" "AVI File(*.avi)|*.avi|""MovieFile(*.mov)|*.mov|""MediaFile(*.mmm)|*.mmm|&qu

13、ot;"MidFile(*.mid;*,rmi)|*.mid;*.rmi|""MPEGFile(*.mpeg)|*.mpeg|""FlvFile(*.flv)|*.flv|""WMVFile(*.wmv)|*.wmv|""AllFile(*.*)|*.*| "/文件類型過濾CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter); if(dlg.DoModal()=IDOK)PathName=dlg.GetPathName();G

14、etDlgItem(IDC_PLAYLIST)->SetWindowText(PathName);PathName.MakeUpper();word 可編輯資料收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除void CMP3_1Dlg:OnAdd() /定時(shí)器文件添加函數(shù)/ TODO: Add your control notification handler code herechar szFileFilter="Mp3 File(*.mp3)|*.mp3|""WmaFile(*.wma)|*.wma|""VideoFile(*.dat)|*.da

15、t|""WaveFile(*.wav)|*.wav|""AVIFile(*.avi)|*.avi|""MovieFile(*.mov)|*.mov|""MediaFile(*.mmm)|*.mmm|""MidFile(*.mid;*,rmi)|*.mid;*.rmi|""MPEGFile(*.mpeg)|*.mpeg|""FlvFile(*.flv)|*.flv|""WMVFile(*.wmv)|*.wmv|""Al

16、lFile(*.*)|*.*| "/文件類型過濾CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);/ CFileDialog log(TRUE,"文件 ","*.wav",OFN_HIDEREADONLY,"聲音文件(*.wav)|*.wav|",NULL);if(dlg.DoModal()=IDOK)pathname=dlg.GetPathName();GetDlgItem(IDC_EDWAVFILE)->SetWindowText(pathn

17、ame);pathname.MakeUpper();void CMP3_1Dlg:OnSet() /定時(shí)播放歌曲設(shè)定函數(shù)/ TODO: Add your control notification handler code here/*CString name;GetDlgItem(IDC_BTSET)->GetWindowText(name);if(name=" 重新設(shè)置 ")word 可編輯資料收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除GetDlgItem(IDC_BTSET)->SetWindowText(" 設(shè)置 ");m_hour.Enabl

18、eWindow();m_minu.EnableWindow();m_wavfile.EnableWindow();elseGetDlgItem(IDC_BTSET)->SetWindowText(" 重新設(shè)置 "); m_hour.EnableWindow(FALSE); m_minu.EnableWindow(FALSE); m_wavfile.EnableWindow(FALSE);CString sound,hour,minu,time;GetDlgItem(IDC_CMBHOUR)->GetWindowText(hour); GetDlgItem(IDC

19、_CMBMINU)->GetWindowText(minu); GetDlgItem(IDC_EDWAVFILE)->GetWindowText(sound); if(sound.IsEmpty()MessageBox("請選擇聲音文件 "," 提示 ",MB_OK);return;if(hour.IsEmpty()MessageBox("請選擇聲音小時(shí) "," 提示 ",MB_OK);return;if(minu.IsEmpty()MessageBox("請選擇聲音分鐘 ",&qu

20、ot; 提示 ",MB_OK);return;time.Format("%s:%s",hour,minu);strtime=time;strsound=sound;SetTimer(1,1000,NULL);word 可編輯資料收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除/*/*系統(tǒng)定時(shí)函數(shù) *void CMP3_1Dlg:OnTimer(UINT nIDEvent)CTime tt;tt=CTime:GetCurrentTime();CString tmp=tt.Format("%H:%M");if(tmp=strtime)KillTimer(1);m

21、_player.SetUrl(pathname);/*左右聲道設(shè)置函數(shù) */void CMP3_1Dlg:OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) DWORD pos;int scrollpos;scrollpos=m_channel.GetPos();if(scrollpos<100):waveOutGetVolume(0,&pos);pos=pos&0x0000ffff|(scrollpos+50)<<8);:waveOutSetVolume(0,pos);if(scrollpos

22、>100):waveOutGetVolume(0,&pos);pos=pos&0xffff0000|(scrollpos-50)<<24);:waveOutSetVolume(0,pos);CDialog:OnHScroll(nSBCode, nPos, pScrollBar);word 可編輯資料收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除void CMP3_1Dlg:OnRecord() /錄音函數(shù)/ TODO: Add your control notification handler code here MCIWndClose(mciwav); mciwav=M

23、CIWndCreate(this->m_hWnd,:AfxGetApp()->m_hInstance,WS_CAPTION,NULL);MCIWndNew(mciwav,"waveaudio");if(MCIWndCanRecord(mciwav)MCIWndRecord(mciwav);void CMP3_1Dlg:Onplay() /開始播放文件/ TODO: Add your control notification handler code here m_player.SetUrl(PathName);四、測試與結(jié)論1.經(jīng)過測試該 MP3 具有打開、播放

24、、停止、暫停、定時(shí)播放的功能??煽刂埔袅?、左右聲道、靜音,可以實(shí)現(xiàn)顯示音頻波形的特效。MP3 播放測試如下:word 可編輯資料收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除2.經(jīng)過測試,該軟件可以支持多種主流視頻格式的波蕩。視頻播放測試如下:五、課程設(shè)計(jì)總結(jié)六、參考文獻(xiàn)1明日科技編著: Visual C+開發(fā)經(jīng)驗(yàn)技巧寶典,人民郵電出版社2007 年版。2劉銳寧編著: Visual C+開發(fā)實(shí)戰(zhàn) 1200 例第一卷,清華大學(xué)出版社 2011 年版。3明日科技編著: Visual C+程序開發(fā)范例寶典,人民郵電出版社2007 年版。4董正言 張聰編著:面向?qū)ο蟮某绦蛟O(shè)計(jì)( C+版),清華大學(xué)出版社 2014

25、 年版。word 可編輯資料收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除七、附錄主要程序的完整代碼,人機(jī)界面圖(備注:字體統(tǒng)一用宋體、小四)附件一:人機(jī)界面圖附件二:程序主要源代碼/ MP3_1Dlg.cpp : implementation file/#include "stdafx.h"#include "MP3_1.h"#include "MP3_1Dlg.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifwor

26、d 可編輯資料收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除/ CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialogpublic:CAboutDlg();/ Dialog Data/AFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;/AFX_DATA/ ClassWizard generated virtual function overrides /AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExch

27、ange* pDX); / DDX/DDV support /AFX_VIRTUAL/ Implementation protected:/AFX_MSG(CAboutDlg) /AFX_MSG DECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoid CAboutDlg:DoDataExchange(CDataExchange* pDX)word 可編輯資料收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除CDialog:DoDataExcha

28、nge(pDX);/AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAboutDlg, CDialog)/AFX_MSG_MAP(CAboutDlg)/ No message handlers /AFX_MSG_MAPEND_MESSAGE_MAP()/ CMP3_1Dlg dialogCMP3_1Dlg:CMP3_1Dlg(CWnd* pParent /*=NULL*/): CDialog(CMP3_1Dlg:IDD, pParent)/AFX_DATA_INIT(CMP3_1Dlg)/AFX_DATA_INIT/ Note th

29、at LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);void CMP3_1Dlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CMP3_1Dlg)DDX_Control(pDX, IDC_CHANNEL, m_channel);DDX_Control(pDX, IDC_PLAYLIST, m_playlist);DD

30、X_Control(pDX, IDC_EDWAVFILE, m_wavfile);DDX_Control(pDX, IDC_CMBMINU, m_minu);DDX_Control(pDX, IDC_CMBHOUR, m_hour);DDX_Control(pDX, IDC_OCX1, m_player);/AFX_DATA_MAPword 可編輯資料收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除BEGIN_MESSAGE_MAP(CMP3_1Dlg, CDialog)/AFX_MSG_MAP(CMP3_1Dlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAG

31、ICON()ON_BN_CLICKED(IDC_OPEN, OnOpen)ON_EN_CHANGE(IDC_EDWAVFILE, OnChangeEdwavfile)ON_CBN_EDITCHANGE(IDC_CMBHOUR, OnEditchangeCmbhour)ON_CBN_EDITCHANGE(IDC_CMBMINU, OnEditchangeCmbminu)ON_BN_CLICKED(IDC_BTADD, OnAdd)ON_BN_CLICKED(IDC_BTEST, OnSet)ON_WM_TIMER()ON_BN_CLICKED(IDC_BTRECORD, OnRecord)ON_

32、BN_CLICKED(IDC_BTSTOP, OnStop)ON_BN_CLICKED(IDC_BTPLAY, OnPlay)ON_NOTIFY(NM_OUTOFMEMORY, IDC_CHANNEL, OnOutofmemoryChannel)ON_WM_HSCROLL()ON_EN_CHANGE(IDC_PLAYLIST, OnChangePlaylist)ON_BN_CLICKED(IDDELE, Onlist)ON_BN_CLICKED(IDC_REC, OnRec)ON_BN_CLICKED(IDC_LRSOUND, OnLrsound)ON_BN_CLICKED(IDC_SETTI

33、ME, OnSettime)ON_BN_CLICKED(IDC_play, Onplay)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CMP3_1Dlg message handlersBOOL CMP3_1Dlg:OnInitDialog()CDialog:OnInitDialog();/ Add "About." menu item to system menu. word 可編輯資料收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除/ IDM_ABOUTBOX must be in the system command range. ASSERT(IDM_ABOUT

34、BOX & 0xFFF0) = IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL)CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX

35、, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the application's main window is not a dialogSetIcon(m_hIcon, TRUE); / Set big icon SetIcon(m_hIcon, FALSE); / Set small iconSetWindowPos(NULL,0,0,480,340,SWP_NOMOVE);/ 無相對移動m_channel.SetRange(0,200);m_ch

36、annel.SetPos(100);/ TODO: Add extra initialization herefor(int i=0;i<24;i+)CString temp;temp.Format("%02d",i);m_hour.AddString(temp);word 可編輯資料收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除for(int p=0;p<60;p+)CString temp;temp.Format("%02d",p);m_minu.AddString(temp);return TRUE; / return TRUE unless yo

37、u set the focus to a controlvoid CMP3_1Dlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialog:OnSysCommand(nID, lParam);/ If you add a minimize button to your dialog, you will need the code below/ to draw the icon. For MFC appl

38、ications using the document/view model,/ this is automatically done for you by the framework.void CMP3_1Dlg:OnPaint()if (IsIconic()CPaintDC dc(this); / device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);/ Center icon in client rectangle word 可編輯資料收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除

39、int cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;/ Draw the icon dc.DrawIcon(x, y, m_hIcon);elseCDialog:OnPaint();/ The system calls this to obtain th

40、e cursor to display while the user drags/ the minimized window.HCURSOR CMP3_1Dlg:OnQueryDragIcon()return (HCURSOR) m_hIcon;void CMP3_1Dlg:OnOpen()/ TODO: Add your control notification handler code here char szFileFilter="Mp3 File(*.mp3)|*.mp3|""Wma File(*.wma)|*.wma|" "Video

41、 File(*.dat)|*.dat|" "Wave File(*.wav)|*.wav|""AVIFile(*.avi)|*.avi|""MovieFile(*.mov)|*.mov|""MediaFile(*.mmm)|*.mmm|""MidFile(*.mid;*,rmi)|*.mid;*.rmi|""MPEGFile(*.mpeg)|*.mpeg|""FlvFile(*.flv)|*.flv|"word 可編輯資料收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)

42、系網(wǎng)站刪除"WMVFile(*.wmv)|*.wmv|""AllFile(*.*)|*.*| "/文件類型過濾CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);if(dlg.DoModal()=IDOK)PathName=dlg.GetPathName();GetDlgItem(IDC_PLAYLIST)->SetWindowText(PathName);PathName.MakeUpper();void CMP3_1Dlg:OnChangeEdwavfile()/ TODO

43、: If this is a RICHEDIT control, the control will not/ send this notification unless you override the CDialog:OnInitDialog()/ function and call CRichEditCtrl().SetEventMask()/ with the ENM_CHANGE flag ORed into the mask./ TODO: Add your control notification handler code herevoid CMP3_1Dlg:OnEditchan

44、geCmbhour()/ TODO: Add your control notification handler code herevoid CMP3_1Dlg:OnEditchangeCmbminu()/ TODO: Add your control notification handler code herevoid CMP3_1Dlg:OnAdd()word 可編輯資料收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除/ TODO: Add your control notification handler code herechar szFileFilter="Mp3 File(*.mp3)

45、|*.mp3|""WmaFile(*.wma)|*.wma|""VideoFile(*.dat)|*.dat|""WaveFile(*.wav)|*.wav|""AVIFile(*.avi)|*.avi|""MovieFile(*.mov)|*.mov|""MediaFile(*.mmm)|*.mmm|""MidFile(*.mid;*,rmi)|*.mid;*.rmi|""MPEGFile(*.mpeg)|*.mpeg|"&

46、quot;FlvFile(*.flv)|*.flv|""WMVFile(*.wmv)|*.wmv|""AllFile(*.*)|*.*| "/文件類型過濾CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);/CFileDialoglog(TRUE," 文 件 ","*.wav",OFN_HIDEREADONLY,"聲 音 文 件(*.wav)|*.wav|",NULL);if(dlg.DoModal()=IDOK)pathname=dlg.GetPathName();GetDlgItem(IDC_EDWAVFILE)->SetWindowText(pathname); pathname.MakeUpper();void CMP3_1Dlg:OnSet()/ TODO: Add your control notification handler code here/*CString name;GetDlgIte

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論