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

正文內(nèi)容

基于vc的多媒體播放器設(shè)計(jì)-畢業(yè)論-文庫(kù)吧

2025-05-16 16:31 本頁(yè)面


【正文】 綁定以及定義,在后面的程序中需要調(diào)用這些類的成員函數(shù)。 對(duì)于打開(kāi)文件按鈕,需要調(diào)用通用文件對(duì)話框類,并利用 listbox 中的 AddString函數(shù)把選中的文件添加到播放列表中,在 MFC學(xué)習(xí)中有涉及。對(duì)于一 些基本的功能的實(shí)現(xiàn),如 播放、暫停、全屏、音量增大、音量減小、靜音、快進(jìn)、快退等功能,主要調(diào)用CWMPControl 和 CWMPPlayer 類中的成員函數(shù)來(lái)進(jìn)行實(shí)現(xiàn)。 對(duì)于播放列表,這次設(shè)計(jì)使用了 SetWindowPos 函數(shù)來(lái)改變一個(gè)子窗口彈出的尺寸和方向,并一些相關(guān)的函數(shù)實(shí)現(xiàn)了保存列表、刪除列表、刪除當(dāng)前的功能。對(duì)應(yīng)播放列表,我還添加了播放模式選擇的功能,提供了順序播放、隨即播放、單曲循環(huán)三種選擇。這當(dāng)中運(yùn)用的 ontimer() 函數(shù)和 settimer() 函數(shù)來(lái)控制播放模式。參照以上的設(shè)計(jì)思想,流程圖如圖 1所示 : 圖 1 流程圖 5 4 軟件設(shè)計(jì) 設(shè)計(jì)步驟 首先,打開(kāi) Microsoft Visual 軟件,新建一個(gè)工程如圖 2 所示,以HuangJianfei 為工程名,然后將此工程定義為基于對(duì)話框的 MFC 應(yīng)用程序如圖 3所示,點(diǎn)擊完成就成功建立了一個(gè)基于對(duì)話框 的工程。 圖 2 工程建立 圖 3 基于對(duì)話框的 MFC 程序 6 在建立好工程之后,首先是 Windows Media Player 控件的添加:建立空白對(duì)話框之后,在對(duì)話框的空白處單擊鼠標(biāo)右鍵,選擇 Insert ActiveX Control 菜單項(xiàng)。選擇Windows Media Player 控件,如圖 4所示。加入控件后,此時(shí)該控件與該對(duì)話框并沒(méi)有聯(lián)系,需要對(duì)其進(jìn)行變量的關(guān)聯(lián)。 圖 4 Windows Media Player 控件的添加 添加完該控件之后可以發(fā)現(xiàn),該控件與右邊控件工具欄添加的控件的形式與功能完全不同,是一種更為高級(jí)的控件,將該控件名改為 IDC_player,如圖 5所示 : 圖 5 Windows Media Player 控件 雖然 已經(jīng)添加了該控件,但是可以發(fā)現(xiàn), 該 控件 并 沒(méi)有與工程中的對(duì)話框發(fā)生任何聯(lián)系,所以需要對(duì)其進(jìn)行變量的關(guān)聯(lián),所屬類為 HuangJianfei 類,變量類型為CWPPlayer4如圖 6 所示 : 7 圖 6 關(guān)聯(lián)變量 關(guān)聯(lián)變量之后,才算是真正的添加完了該控件,可以發(fā)現(xiàn)在關(guān)聯(lián)變量之后,控件工具欄多了 Windows Media Player 控件的選項(xiàng),并且在 Source Files 中增加了 17 個(gè)類,相應(yīng)的頭文件也增加了 17個(gè),如圖 7 所示 : 圖 7 添加控件后的變化 其中最主要的類為 Cwmpplayer4, Cwmpcontrols, Cwmpmedia, Cwmpplaylist,Cwmpsettings 五大類。 Cwmpplayer4類主要是關(guān)于對(duì)其他類的對(duì)象的調(diào)用以及基本的控件功能的實(shí)現(xiàn),提供了與 Windows Media Player 控件進(jìn)行交互的基本方法,其中部分成員函數(shù)還能夠進(jìn)一步獲取得到其他相關(guān)類對(duì)象的實(shí)例; Cwmpcontrols 類主要是對(duì)控件的更多的操作; Cwmpmedia 類主要是對(duì)于媒體文件資源的一些操作; Cwmpplaylist 類主要是關(guān)于播放列表的操作; Cwmpsettings 類主要是對(duì)于媒體文件中的一些基本設(shè)置的操作。 8 對(duì)于該控件的添加以及內(nèi)部函數(shù)的理解需要較多時(shí)間熟悉,添加完此關(guān)鍵控件之后,進(jìn)行界面的設(shè)計(jì)。 界面設(shè)計(jì) 首先是打開(kāi)按鈕,用于媒體文件的打開(kāi)。然后依次是,播放、暫停、 保存列表、清空列 表、刪除當(dāng)前、隱藏 /展開(kāi)、 靜音、播放 、 停止、退出等按鈕。對(duì)其進(jìn)行變量的關(guān)聯(lián),以及 ID的修改,修改結(jié)果如表 表 2所示: 表 1 控件 ID 以及關(guān)聯(lián)變量 控件 Caption 按鈕 ID 關(guān)聯(lián)變量類型 關(guān)聯(lián)變量名稱 WMPlayer IDC_player CWMPlayer4 m_HuangJianfei 表 2 控件 ID 以及對(duì)應(yīng)響應(yīng)函數(shù) 控件 Caption 按鈕 ID 消息響應(yīng)函數(shù) 打開(kāi) IDC_OPEN OnOpen() 播放 IDC_PLAY OnPlay() 暫停 IDC_PAUSE OnPause() 保存列表 IDC_SAVELIST OnSavelist() 清空列表 IDC_DELLIST OnDellist() 刪除當(dāng)前 IDC_DELLISTCUR OnDellistcur() 雙擊 播放列表 IDC_LIST1 OnDblclkList1() 隱藏 /展開(kāi) IDC_ONLIST OnOnlist() 列表框 IDC_LIST1 OnDblclkList1() 靜音 IDC_MUTE OnMute() 表 3 控件 ID 以及對(duì)應(yīng)響應(yīng)函數(shù) 控件 Caption 按鈕 ID 消息響應(yīng)函數(shù) 停 止 IDC_STOP OnStop() 退出 IDC_EXIT OnExit() 關(guān)于 IDC_ABOUT OnAbout() 以上為有對(duì)應(yīng)控件的對(duì)象的關(guān)聯(lián),除了有對(duì)應(yīng)控件的,還需要有 Windows Media Player 控件所生成的 17 個(gè)類中的幾個(gè)重要的類進(jìn)行對(duì)象的定義, 可知,對(duì)于成員對(duì)象的定義和成員函數(shù)的聲明都放在頭文件中,此次設(shè)計(jì)共主要用到其中 3個(gè)類 ,因?yàn)樵O(shè)計(jì)了一個(gè)退出提醒彈出框,所以也要對(duì)其定義,具體如表 3所示: 表 4 其他類及對(duì)應(yīng)對(duì)象 類名 對(duì)象名 類名 對(duì)象名 CWMPControls m_Control CWMPPlaylist m_Playlist CWMPMedia m_Media CString m_PathName CWMPSettings m_Setting CString m_FileName 除了對(duì)各個(gè)控件關(guān)聯(lián)變量以及消息響應(yīng)函數(shù),還要對(duì)對(duì)話框類進(jìn)行消息響應(yīng)函數(shù)的關(guān)聯(lián),因?yàn)榇舜卧O(shè)計(jì)中添加了播放模式選擇的功能,所以需要用到 WM_TIMER 消息響應(yīng)函數(shù)以及 SetTimer()和 OnTimer()函數(shù)來(lái)實(shí)現(xiàn)這項(xiàng)功能,將對(duì)話框類進(jìn)行該消息響應(yīng)函數(shù)的關(guān)聯(lián)并書(shū)寫(xiě)程序。 添加方法如圖 8所示。 9 圖 8 添加 WM_TIMER 消息響應(yīng)函數(shù) 最終得到各個(gè)空間分布后的界面如圖 9 所示 : 圖 9 多媒體播放器界面 除了以上主對(duì)話框外,我還對(duì) ABOUTBOX 進(jìn)行了重新設(shè)計(jì),也自制了一個(gè) Check 對(duì)話框,其中 ABOUTBOX 如圖 10所示。 Check 對(duì)話框是在用戶點(diǎn)擊退出按鈕自動(dòng)彈出的提醒窗口,主要用于防止用戶誤按關(guān)閉按鈕導(dǎo)致程序關(guān)閉,有利于用戶的使用,增強(qiáng)軟件的友好性,如圖 11所示。 10 圖 10 修改后的 ABOUTBOX 對(duì)話框 圖 11 提醒對(duì)話框 關(guān)于菜單的制作,首先,需要在 ResourceView 中加入資源 Menu,后增加對(duì)應(yīng)的菜單項(xiàng)以及菜單自己布局,下拉菜單則需要和按鈕關(guān)聯(lián),其方法是將其 ID 和按鈕的 ID 一樣,菜單布局圖 12 所示。 圖 12 菜單欄 關(guān)鍵功能的實(shí)現(xiàn) 對(duì)于各個(gè)函數(shù)的介紹,本 論 文以關(guān)鍵代碼以及注釋的方式進(jìn)行介紹,首先介紹主對(duì)話框中函數(shù)的實(shí)現(xiàn)以及說(shuō)明: (1)Onopen()。 //打開(kāi)函數(shù) void CHuangJianfeiDlg::OnOpen() 11 其中難點(diǎn)在于對(duì)于陌生函數(shù)的理解,由于類數(shù)目較多,各類又有各自不同的成員函數(shù),運(yùn)用起來(lái)比較困難。除了調(diào)用通用文件對(duì)話框和較為熟悉之外,其他的函數(shù)都是平時(shí)沒(méi)有見(jiàn)過(guò)的。播放列表中獲取路徑名是靠的添加主要依靠于 GetNextPathName()函數(shù),而 ()函數(shù)是將項(xiàng)目名添加到播放列表中。 (2)Onlist()。隱藏 /展開(kāi) 播放列表按鈕函數(shù)和 OnDblclkList1()。播放列表函數(shù): int flag=0。 void CHuangJianfeiDlg::OnOnlist() 對(duì)于 隱藏 /展開(kāi) 播放列表按鈕,設(shè)計(jì)在那的功能是運(yùn)行軟件時(shí)播放器的播放列表是展開(kāi) 的,當(dāng)點(diǎn)擊按鈕時(shí),播放列表 隱藏 。為了實(shí)現(xiàn)這個(gè)功能,我將播放列表 LIST1和播放列表按鈕關(guān)聯(lián)起來(lái),關(guān)系設(shè)為控制。為此,在程序定義了一個(gè)全局變量 flag,將其設(shè)為一個(gè)標(biāo)志, 在初始化時(shí)定義窗口無(wú)相對(duì)位移,當(dāng)點(diǎn)擊按鈕是,窗口位移,因此就實(shí)現(xiàn)了播放列表的隱藏和出現(xiàn)的功能。而對(duì)于播放列表,則要求它實(shí)現(xiàn)雙擊播放功能,所以對(duì)列表控件增加一個(gè)消息映射,并選擇雙擊消息函數(shù)響應(yīng),如圖 13 所示。在其中編程時(shí)也加入了執(zhí)行響應(yīng)函數(shù) SetTimer(),當(dāng)點(diǎn)擊函數(shù)時(shí)就開(kāi)始創(chuàng)建計(jì)數(shù)器,以便實(shí)現(xiàn)播放模式的功能。 圖 13 播放列表消息映射函數(shù)設(shè)置 具體 函數(shù) 如下所示: void CHuangJianfeiDlg::OnDblclkList1() ( 3)播放函數(shù)及其他多媒體播放控制按鈕 void CHuangJianfeiDlg::OnPlay() //播放 void CHuangJianfeiDlg::OnPause() //暫停 void CHuangJianfeiDlg::OnStop() //停止 12 ( 4) 播放模式 播放模式的選擇需要用到 WM_TIMER 消息如圖 14所示,以及適時(shí)調(diào)用 SetTimer()和 OnTimer()函數(shù)。初始化時(shí)默認(rèn)設(shè)置為順序播放,當(dāng)雙擊播放時(shí)就開(kāi)始創(chuàng)建計(jì)數(shù)器,每 1 秒就執(zhí)行以下 OnTimer函數(shù)。而 OnTimer 函數(shù)就會(huì)獲得播放狀態(tài),如果當(dāng)前的播放完了,就檢測(cè)單選按鈕在哪,從而選擇執(zhí)行哪個(gè)程序。如果是順序播放,就自動(dòng)執(zhí)行下一項(xiàng)目;如果是隨 機(jī) 播放,就在 “ 列表的文件數(shù) ”中 產(chǎn)生一個(gè)隨 機(jī) 數(shù),然后執(zhí)行;而如果是單曲循環(huán),那么就一直執(zhí)行當(dāng)前文件。 圖 14 M_TIMER 消息添加 初始化(在 OnInitDialog()函數(shù)下)程序如下: (0)。 //選擇第一行 ((CButton*)GetDlgItem(IDC_RADIO1))SetCheck(true)。 //默認(rèn)播放模式為順序播放 計(jì)數(shù)器函數(shù) OnTimer 程序如下: void CHuangJianfeiDlg::OnTimer(UINT nIDEvent) ( 5) Onabout()和 Onexit()函數(shù) 因?yàn)檎{(diào)用自身編輯的對(duì)話框并且修改了工程中的 ABOUTBOX 資源,所以也要對(duì)其進(jìn)行一定的修改。首先,是對(duì) Onabout()函數(shù)的修改: void CHuangJianfeiDlg::OnAbout() 其次,是對(duì) Onexit()函數(shù)的重載。對(duì)于添加自制的對(duì)話框,制作方面較為簡(jiǎn)單 ,其函數(shù) 如下: void CHuangJianfeiDlg::OnCancel() ( 6)菜單欄的添加制作以及功能 菜單欄的制作和添加不難,只要將其
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1