freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

mp3播放器制作(編輯修改稿)

2025-01-08 18:03 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 立相應(yīng)的可視化按鈕,然后建立與之相應(yīng)的事件,建立相應(yīng)的類向?qū)Ъ纯杉せ钸@個(gè)按鈕。下面就具體的功能詳細(xì)給出制作的過程: 程序詳解 我們以圖 2(進(jìn)行播放操作時(shí)界面 )為例,對(duì)此設(shè)計(jì)進(jìn)行全面分析。 圖 2:操 作界面 1. 首先打開 Visual C++ ,新建一個(gè)工程,由于最后要生成 .exe 可執(zhí)行文件,這里選擇 MFC AppWizard[exe]這個(gè)平臺(tái) ,自己建一個(gè)工程名稱,如: My Mp3player,點(diǎn)擊“下一步”,進(jìn)入“應(yīng)用程序向?qū)А睂?duì)話框。由于最后要生成可執(zhí)行文件,而且是以對(duì)話框的形式進(jìn)行操作,這里選擇“基本對(duì)話框”項(xiàng)。如圖3: XXX2021 屆本科生畢業(yè)設(shè)計(jì) 第 10 頁(yè) 共 30 頁(yè) 圖 3:選擇基本對(duì)話框項(xiàng) 接下來一直點(diǎn)擊“下一步”,一直到“完成”。 2. 進(jìn)入可視化頁(yè)面設(shè)計(jì),如圖 4 : 圖 4:準(zhǔn)備進(jìn)行播放器的外觀設(shè)計(jì)階段 根據(jù) mp3 播放器的特點(diǎn),加入指定的控件,并標(biāo)明各控件的作用,例如:播放,暫停,打開文件,上一首,下一首等等。并將系統(tǒng)初始狀態(tài)不需要的按鈕刪除掉。加入必要的控件后界面如圖 5: 圖 5:加入控件后界面 在此處,需要給各按鈕一個(gè) ID,即在編寫程序時(shí)他們的名稱,例如:“播放”按鈕 IDC_PLAY,“停止”按鈕 IDC_STOP,“上一首”按鈕 IDC_PER,這些都可以在按鈕的屬性窗口里設(shè)置。 與此同時(shí),可以 進(jìn)行插入和修改一些資源,例如插入 ps 時(shí)的圖片 以達(dá)到對(duì)界面的美化,并可以修改“幫助”, vision 等信息。如圖 6:XXX2021 屆本科生畢業(yè)設(shè)計(jì) 第 11 頁(yè) 共 30 頁(yè) 圖 6:修改“ ABOUTBOX”里的內(nèi)容,并加入圖片 ,開始加入各各按鈕的功能代碼: 在加入代碼之前,首先必須進(jìn)行變量分析和了解各個(gè)按鈕的功能,以及他們要發(fā)生的事件,例如: open“打開”按鈕,要發(fā)生“單擊”即“ click”事件,在單擊它的時(shí)候,會(huì)彈出打開文件的窗口。首先要進(jìn)行變量分析,即在程序中需要哪些變量,變量們的作用,實(shí)現(xiàn)什么樣的功能。例如 :必須要有記錄歌曲播放時(shí)間的 hour,minute,second 以及記錄文件播放路徑的變量等等。 ( 1)“播放” play 按鈕代碼添加方法:在圖 5 界面上,右鍵點(diǎn)擊“播放”按鈕,選擇“建立類向?qū)А?,由于它要進(jìn)行單擊事件,在 Message 選項(xiàng)中選擇 BN_CLICKED事件,然后選擇 Add Function,如圖 7: 圖 7:添加事件 然后選擇 Edit Code,進(jìn)行代碼編輯: void CPlayerDlg::OnPlay() { if(aa==) { OnOpen()。 } XXX2021 屆本科生畢業(yè)設(shè)計(jì) 第 12 頁(yè) 共 30 頁(yè) else { if(m_flagamp。amp。aa!=) { (IDB_BITMAPPAUSE,IDB_BITMAPPLAY3)。 m_flag=false。 ()。 MCI_OPEN_PARMS mciopenparms。//打開 MCI_PLAY_PARMS mciplayparms。//播放 =aa。//播放路徑 =NULL。//文件類型 mciSendCommand(0,MCI_OPEN,MCI_DEVTYPE_WAVEFORM_AUDIO,(DWORD)(LPVOID)amp。mciopenparms)。//向 MCI 設(shè)備發(fā)送命令消息 m_count=。 =(DWORD)GetSafeHwnd()。 cdlen=getinfo(MCI_STATUS_LENGTH)。 //得到曲目長(zhǎng)度 cdto=MCI_MAKE_HMS(MCI_HMS_HOUR(cdlen),MCI_HMS_MINUTE(cdlen),MCI_HMS_SECOND(cdlen))。 =cdfrom。 =cdto。 mciSendCommand(m_count,MCI_PLAY,MCI_TO|MCI_FROM,(DWORD)(LPVOID)amp。 mciplayparms)。 SetTimer(0,1000,NULL)。 UpdateData(false)。 } else { (IDB_BITMAPPLAY1,IDB_BITMAPPLAY3)。 m_flag=true。 ()。 KillTimer(0)。 DWORD dwsf=getinfo(MCI_STATUS_POSITION)。 cdfrom=MCI_MAKE_MSF(MCI_MSF_MINUTE(dwsf),MCI_MSF_SECOND(dwsf), MCI_MSF_FRAME(dwsf))。 XXX2021 屆本科生畢業(yè)設(shè)計(jì) 第 13 頁(yè) 共 30 頁(yè) mciSendCommand(m_count,MCI_CLOSE,0,NULL)。 m_count=0。 } } } “播放”按鈕在播放列表沒有文件時(shí),“播放”按鈕起到了一個(gè)“打開”按鈕的作用。 ( 2)依照上面“ play”按鈕的方法,對(duì)“ stop”停止按鈕進(jìn)行代碼的編寫(它的 ID 為 IDC_STOP): void CPlayerDlg::Onstop() { KillTimer(0)。 cdfrom=MCI_MAKE_HMS(0,0,0)。 mciSendCommand(m_count,MCI_CLOSE,0,NULL)。 m_count=0。 (IDB_BITMAPPLAY1,IDB_BITMAPPLAY3)。 m_flag=true。 ()。 } (3)對(duì)“ open”打開按鈕編碼: void CPlayerDlg::OnOpen() { // TODO: Add your control notification handler code here CFileDialog f(true)。 |=512。//OFN_ALLOWMULTISELECT。 =All Support type\0*.*\0\0。 //選取內(nèi)容部份 POSITION pos=()。 if(()==IDOK) { while (pos != NULL) { fi++。 file[fi]=(pos)。 if(aa==) { aa=file[fi]。 fr=fi。 XXX2021 屆本科生畢業(yè)設(shè)計(jì) 第 14 頁(yè) 共 30 頁(yè) Onstop()。 Tplay()。 (IDB_BITMAPPAUSE,IDB_BITMAPPLAY3)。 m_flag=false。 ()。 } (file[fi])。 (fr)。 UpdateData(false)。 } forfor()。 } } ( 4)對(duì)“ rp”按鈕編碼(用來設(shè)置一個(gè)標(biāo)志位 flag): void CPlayerDlg::OnRp() { if(m_flag1) { (IDB_BITMAPRP2,IDB_BITMAPRP1)。 m_flag1=false。 m_flag2=true。 ()。 } else { (IDB_BITMAPRP1,IDB_BITMAPRP2)。 m_flag1=true。 m_flag2=false。 ()。 } } (5)接下來分別對(duì)“ per”上一首,“ next”下一首兩個(gè)按鈕進(jìn)行編碼: void CPlayerDlg::OnPer() { fr。 if(fr==1) XXX2021 屆本科生畢業(yè)設(shè)計(jì) 第 15 頁(yè) 共 30 頁(yè) { fr=0。 } if(fr=0) { (fr)。 aa=file[fr]。 Onstop()。 OnPlay()。 UpdateData(false)。 } } void CPlayerDlg::OnNext() { fr++。 if(frfi) { fr=fi。 } if(fr=fi) { (fr)。 aa=file[fr]。 Onstop()。 OnPlay()。 UpdateData(false)。 } } (6)對(duì)“ pop”展開播放列表按鈕進(jìn)行編碼,這個(gè)按鈕作用即為展開一個(gè)文本框,框中所選內(nèi)容即為所選擇歌曲的路徑,雙擊路徑時(shí)可以使歌曲播放: void CPlayerDlg::OnPop() { if(m_flag4) { for(int i=303。i=502。i++) { Sleep(2)。 XXX2021 屆本科生畢業(yè)設(shè)計(jì) 第 16 頁(yè) 共 30 頁(yè) MoveWindow(200,200,i,103)。 } m_flag4=false。 }else { for(int i=502。i=303。i) { Sleep(2)。 MoveWindow(200,200,i,103)。 } m_flag4=true。 } } ( 7)在展開播放列表旁邊的“ sdel”刪除按鈕,可以對(duì)播放列表里的文件進(jìn)行刪除,其代碼為: void CPlayerDlg::OnSdel() { int temp=0,i=0,j=0。 temp=()。 for(i。i=fi。i++) { if(i==temp) { j=i。 for(j。jfi。j++) { file1[j]=file1[j+1]。 } fi=fi1。 (temp)。 (temp1)。 UpdateData(false)。
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1