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

正文內(nèi)容

基于vc的多媒體播放器設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文(參考版)

2024-08-31 15:02本頁面
  

【正文】 CMediaPlayerDlg::OnPlay()。 CString strName=(i,3)。 i=rand()%()。 int i。 IndexInFieldList = (pos)。 POSITION pos。 : KillTimer(0)。 (strName)。 (IndexInFieldList+1, LVIS_SELECTED,LVIS_SELECTED)。 return。 } } 播放循環(huán)模塊實(shí)現(xiàn) 表 播放列表模塊實(shí)現(xiàn) 控件 ID 類型 相應(yīng)函數(shù) 功能 IDC_MODEL ComBox 切換模式 void CMyMediaPlayerDlg:OnSingle() 單 個(gè)播放 void CMyMediaPlayerDlg::OnLoop() 循環(huán)播放 void CMyMediaPlayerDlg::OnSleloop() 單個(gè)循環(huán) void CMyMediaPlayerDlg::OnRandom() 無序播放 void CMyMediaPlayerDlg::OnOrder() 順序播放 :(具體見表 所示) if(IndexInFieldList == ()1) { (IndexInFieldList, LVIS_SELECTED,LVIS_SELECTED)。 } else 31 { TRACE(Can39。 (temp)。 } temp=(i,j)。 temp+=|。j4。i) { CString temp。 if((strFilePath,CFile::modeCreate|CFile::modeReadWrite| CFile::typeText)) { for(i=()1。 } CStdioFile file。 CString strFilePath。 } TCHAR szFilter[]=_T(列表文件 (*.list)|*.list||)。t open list file!)。 30 (0,LVIS_SELECTED,LVIS_SELECTED)。 (m_media)。 (strtemp[3])。 (0,3,_T(strtemp[3]))。 (0,1,_T(strtemp[1]))。)。i++) AfxExtractSubString(strtemp[i],str,i,39。 while((str)) { for(i=0。 CString str。 (IndexInFieldList, ~LVIS_SELECTED,LVIS_SELECTED)。 pos = ()。 } CStdioFile file; int i。 CString strFilePath。 TCHAR szFilter[] = _T(列表文件 (*.list)|*.list||)。 29 雙擊選中當(dāng)前 list 中信息,讀取信息的本地 URL 進(jìn)行播放。 (nItem, flag1, flag1)。 int nItem = pNMItemActivateiItem。 ()。 這樣播放進(jìn)度條就可以實(shí)現(xiàn)顯示播放進(jìn)度又可以改變播放進(jìn)度的功能。 int timepos = (int)()。 使其能拖動,松開是也定在該位置 } } else { CSliderCtrl::OnMouseMove(nFlags, point)。 } MOUSE MOVE 的對應(yīng)函 數(shù)中: if (m_bDragging) { if (SetThumb(point)) { m_bDragChanged = true。 m_bDragChanged = false。 m_bDragChanged = true。 ::ReleaseCapture()。 27 PostMessageToParent(TB_THUMBTRACK)。 SetFocus()。 m_bDragChanged = false。 if(pWnd) pWndPostMessage(WM_HSCROLL, (WPARAM)((GetPos() 16) | nTBCode), (LPARAM)GetSafeHwnd())。 } return bChanged。 const bool bChanged = (nNewPos != GetPos())。 } // This correction factor is needed when you click inbetween tick marks // so that the thumb will move to the nearest one dCorrectionFactor = *(1dPos) *dPos。 TBS_VERT) { 26 // note: there is a bug in GetChannelRect, it gets the orientation of the rectangle mixed up dPos = (double)( )/( )。 double dCorrectionFactor = 。 GetChannelRect(rc)。 const int nMax = GetRangeMax()+1。 point) 和PostMessageToParent(const int nTBCode) const 如下 bool CNiceSliderCtrl::SetThumb(const CPointamp。 如果不為 0,顯示播放文件最大分鐘數(shù),根據(jù)每秒刷新一下當(dāng)前播放時(shí)間。 SetDlgItemText(IDC_EDIT_TIMEALL, (iItem,2))。 iItem = (pos)。 int iItem,timepos,sPos。 SetDlgItemText(IDC_EDIT_TIMEALL,00:00)。 獲取當(dāng)前播放的進(jìn)度時(shí)間( Cstring)和 long 型的時(shí)間 計(jì)算當(dāng)前進(jìn)度條的位置 25 設(shè)置當(dāng)前顯示時(shí)間和最大時(shí)間、進(jìn)度條位置。 } 如果不等于最大列表個(gè)數(shù) 1,下個(gè)為 item+1. (strName)。 如果 item 等于當(dāng)前列表最大個(gè)數(shù) 1 的話,說明當(dāng)前 item 在最底端,它的下個(gè)為空,我設(shè)置它的下個(gè)為第一個(gè),也是 item=0. } else { (iItem+1, flag1, flag1)。 下一個(gè)切換功能: if(iItem == ()1) { (0, flag1, flag1)。 } 如果不為 0 則切換在上個(gè) item。 } else { (iItem1, flag1, flag1)。 strName=(m_iListNum1,3)。 Button 控件,在對應(yīng)的響應(yīng)函數(shù)中實(shí)現(xiàn)具體功能如下。 停止,設(shè)置 int 型成員變量 playstate 為 2 ()。 暫停,設(shè)置 int 型成員變量 playstate 為 1 ()。見表 所示 播放,設(shè)置 int 型成員變量 playstate 為 0 ()。 23 播放控制模塊設(shè)計(jì) 表 文件模塊 、暫停和停止使用 CWMPControls 的類函數(shù) ,對象實(shí)例化 m_controls,直接使用用實(shí)例調(diào)用對應(yīng)函數(shù) play()實(shí)現(xiàn)播放,實(shí)現(xiàn)起來簡單方便。設(shè)置進(jìn)度條滑動的最大刻度為文件的播放時(shí)長。 m_PlayState=0。 m_iListNum++。 ((m_iListNum,3))。 (m_iListNum,3,PathName)。 (m_iListNum,1,(FileType))。 (m_media)。 } } ()。 return。 (0,m_time)。 if(0 == (PathNameCMP)) { (i, flag, flag)。i++) { CString PathNameCMP。 for(int i=0。 非模態(tài)顯示文件打開的框,設(shè)置顯示的類型。*.rmi| MPEG File(*.mpeg)|*.mpeg||。 char szFileFilter[]= All File(*.*)|*.*| Mp3 File(*.mp3)|*.mp3| Wma File(*.wma)|*.wma| Video File(*.dat)|*.dat| Wave File(*.wav)|*.wav| AVI File(*.avi)|*.avi| Movie File(*.mov)|*.mov| Media File(*.mmm)|*.mmm| Mid File(*.mid。 pos = ()。 圖 IDR_MENU 菜單欄 再運(yùn)行看下主界面,在標(biāo)題欄的正下方出現(xiàn)了菜單 . 21 文件模塊設(shè)計(jì) 表 文件模塊 控件 ID 類型 對應(yīng)函數(shù) 主要的作用 IDC_OPEN Button void CMyMediaPlayerDlg::OnOpen() 打開文件,加入列表等 (見表 ) POSITION pos。H) ID_MENU_ABOUT About My Media Player 20 圖 IDR_ACCELERATOR 最后一步是對按鍵做消息映射,詳細(xì)如圖 的顯示的樣子在 CMyMediaPlayer 的BEGIN_MESSAGE_MAP()和 END_MESSAGE_MAP()之間的代碼行中添加我們形式如ON_COMMAND(ID_FILE_OPEN,OnOpen)第一個(gè)是按鍵 ID 第二個(gè)為相應(yīng)的功能函數(shù),這個(gè)是打開文件的消息響應(yīng)。R) \tAlt+F4 ID_MENU_SLELOOP 單一循環(huán) (amp。O) \tAlt+F2 ID_MENU_LOOP 循環(huán)播放 (amp。M) ID_MENU_SINGLE 單個(gè)播放 (amp。D) ID_MENU_CLEARN 清空 (amp。L) ID_MENU_ADD 添加 (amp。A) \tCtrl+F2 ID_MENU_STOP 停止 (amp。C) ID_MENU_PLAY 播放 (amp。O) \tCtrl+O ID_EXIT 退出 (amp。 按鍵 ID 名稱 熱鍵 快捷鍵 媒體文件 (amp。在此之前先 做一個(gè)菜單欄,在 Resource view 資源視圖對當(dāng)前資源文件右鍵插入 Menu 菜單欄,對對話框右鍵屬性綁定 IDR_MENU,或者是 CMyMediaPlayerDlg的初始化函數(shù)中添加 對菜單欄創(chuàng)建按鈕如下表 所示。 圖 添加菜單欄后的播放器主界面 18 4 詳細(xì)設(shè)計(jì) 功能模塊詳細(xì)設(shè)計(jì) 打開播放器后,播放器先初始化,然后打開文件,打開的文件加入了播放列表,播放列表顯示了媒體文件的 相關(guān)信息,然后進(jìn)行播放,導(dǎo)入和導(dǎo)出文件列表和一些對應(yīng)的列表管理的操作,清理和移動列表中文件,之后可以選擇列表播放的模式,模式主要有五種,也可以進(jìn)行播放狀態(tài)的控制,調(diào)整播放進(jìn)度,改變音量的大小,切換當(dāng)前播放的內(nèi)容等,具體見圖 所示。 圖 播放器主界面 17 整體來看這個(gè)播放器界面已經(jīng)比較完善了,就差把對應(yīng)的功能實(shí)現(xiàn)了。在滑條右下方做了一個(gè)快進(jìn)和快退的旋轉(zhuǎn)按鈕,按左邊的箭頭的功能是快退,每次快退總進(jìn)度的百分分一,按右邊的箭頭的功能是快進(jìn),每次按動前進(jìn)總進(jìn)度的百分之一,同時(shí)拖動進(jìn)度條也有調(diào)節(jié)播放進(jìn)度的功能。播放模式使用下拉列表選擇播放的模式,音量設(shè)置單選按鈕和滑動條, 通過勾選單選鍵來開啟或者關(guān)閉音量,通過滾動滑動條調(diào)節(jié)音量大小。 界面設(shè)計(jì) 打開 VC++ New → Poject → MFC AppWizard( EXE )界面選擇對話框模式,然后在對主對話框右鍵選擇右鍵菜單中 Insert ActiveX Controls,向下翻找到 Windows Media Player 的組件對該組件右鍵屬性對組件屬性進(jìn)行修改, ID 設(shè)置為 IDC_OCX1,在常規(guī)一欄下的控件布局選項(xiàng)中,把布局設(shè)置成 None,這樣播放插件就只提供顯示功能而沒有其他的功能。 定時(shí)操作 定時(shí)時(shí)間到了之后執(zhí)行的操作,關(guān)機(jī)或者關(guān)閉程序。 音量控制模塊 音量的增減,靜音 設(shè)置有開啟和關(guān)閉總音量的開關(guān),關(guān)閉就是靜音,通過改變進(jìn)度條調(diào)整增加或者減少音量大小。主要適用于播放音樂文件的時(shí)候。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1