基於MFC的Media Player播放器的制作(3---功能實現)


|   版權聲明:本文為博主原創文章,未經博主允許不得轉載。

 

下面我們試試一下,按下退出Button退出播放器的功能:

  首先,我們雙擊退出Button按鈕,就會彈出下圖的框:

     

  上面的弄好之后我們就實現退出函數的功能: 這個代碼寫好之后,我們可以運行一下,在單擊退出按鈕,可以發現,按下之后我

們的播放器自動退出

 

  下面我們在實現打開文件的功能,這個功能比較復雜,第一步我們首先雙擊打開文件按鈕,在CPandaPlayerDlg.cpp中創建函

數OnOpenfile();創建過程同上。

      

  可以看到函數;然后在函數內添加實現方法

 實現代碼:

在這個函數中有幾個變量是全局變量要定義

 

在這些全部弄好之后,我們就可運行程序了;如下圖所示:

 

  下面在介紹一個關於播放的函數實現;這個實現要建立文件關聯,因為在前面我介紹了play()函數是在CWMPControls類

中,因此要使用play()函數和CWMPControls類中的一些其他的函數,我們就要建立文件關聯。

第一步:創建函數;方法同上

第二步:建立文件關聯

    1>  首先我們找到CWMPControls類的頭文件wmpcontrols.h,在CPandaPlayerDlg.h中添加

#include "wmpcontrols.h"

    2>  將頭文件添加好了之后,我們在CPandaPlayerDlg.h的CPandaPlayerDlg類中創建CWMPControls的變量為:

CWMPControls m_MediaControl;

    3>  創建好變量之后,我們在CPandaPlayerDlg.cpp文件中找到函數OnInitDialog(),在OnInitDialog()函數中創建文件

關聯;

  m_MediaControl=static_cast<CWMPControls>(m_ActiveMovie.GetControls());//文件關聯

    4>  文件關聯全部弄好之后我們就可以,實現OnPlay()函數中的代碼了;

 

實現了上面的所有步驟之后,我們運行就可以看到效果了;

 

 

因為在CWMPControls類中存在着,pause()和stop()函數,我們可以使用這兩個函數實現暫停和播放

如下函數中實現代碼:

代碼實現:

 運行效果:

 

  上面是關於播放的一些函數,下面在介紹一下音量的控制,音量控制和播放一樣,要建立文件關聯,因為音量的控制在

CWMPSettings類中,我們同上的步驟一樣建立類的關聯,如圖:

 下面在實現相應的功能:

 實現代碼:

 

 運行效果:

介紹到這里為止:

 

注意:

  1.   如果要引入除開CWMPPlayer4類的其他的類庫中的函數則必須建立文件關聯,方法同上,文件關聯在CWMPPlayer4

類中均有對應的實例化函數。在前面的《基於MFC的Media Player播放器控件的屬性和方法》中已經全部介紹。根據自己的需

求去弄。但是在CWMPPlayer4中的方法則可以直接引用,通過建立的CWMPPlayer4 對象m_ActiveMovie直接調用就行。

 

  2.  如果是追求完美的可以通過將界面的背景添加背景圖片,方法如下(實現對話框里添加位圖作為背景圖):

  首先工程文件夾下找到res文件夾,在里面增加BMP格式位圖資源,之后在對話框里添加一個小圖片,然后在對話框里添加

此圖片控件,修改類型屬性,選擇位圖ID即可添加圖片了,最后在 CLotteryDlg::OnPaint()里的else之后括號里添加如下代碼

就行:

 1 // CDialog::OnPaint();  設置對話框位圖時要禁止調用此對話框  * 
 2  //  以下設置對話框的背景位圖  
 3     CPaintDC dc(this); 
 4         CBitmap   bitmap; 
 5         bitmap.LoadBitmap(IDB_BITMAP1);    //這個IDB_BITMAP1要自己添加 
 6         CBrush   brush; 
 7         brush.CreatePatternBrush(&bitmap); 
 8         CBrush*   pOldBrush   =   dc.SelectObject(&brush); 
 9         dc.Rectangle(0,0,730,430);   // 這些參數可以調整圖片添加位置和大小 
10         dc.SelectObject(pOldBrush);
11     CDialog::OnPaint();

這里我沒有實現背景,效果圖就沒有了,追求完美的可以試試。

附上我寫好的運行截圖:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM