// PlayerDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Player.h"
#include "PlayerDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#pragma comment(lib,"msimg32.lib")
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* 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_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPlayerDlg dialog
CPlayerDlg::CPlayerDlg(CWnd* pParent /*=NULL*/)
: CDialog(CPlayerDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CPlayerDlg)
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CPlayerDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPlayerDlg)
DDX_Control(pDX, IDC_DownPlay, m_DowmPlay);
DDX_Control(pDX, IDC_UpPlay, m_UpPlay);
DDX_Control(pDX, IDC_Replay, m_rePlay);
DDX_Control(pDX, IDC_LIST3, m_list);
DDX_Control(pDX, IDC_Play, m_Play);
DDX_Control(pDX, ID_Volume, m_SetVolume);
DDX_Control(pDX, IDC_SetShowLongth, m_SetShowLongth);
DDX_Control(pDX, IDC_StopReFirst, m_StopReFrist);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPlayerDlg, CDialog)
//{{AFX_MSG_MAP(CPlayerDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_StopReFirst, OnStopReFirst)
ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SetShowLongth, OnReleasedcaptureSetShowLongth)
ON_WM_TIMER()
ON_NOTIFY(NM_RELEASEDCAPTURE, ID_Volume, OnReleasedcaptureVolume)
ON_BN_CLICKED(IDC_Play, OnPlay)
ON_BN_CLICKED(IDC_OnSthing, OnOnSthing)
ON_LBN_DBLCLK(IDC_LIST3, OnDblclkList3)
ON_BN_CLICKED(IDC_DaoRu, OnDaoRu)
ON_BN_CLICKED(IDC_Replay, OnReplay)
ON_BN_CLICKED(IDC_Delete, OnDelete)
ON_BN_CLICKED(IDC_UpPlay, OnUpPlay)
ON_BN_CLICKED(IDC_DownPlay, OnDownPlay)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPlayerDlg message handlers
BOOL CPlayerDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
RePlay=false;
i_PlayTime=0;
m_SetVolume.SetRange(0,1000); //进度条.SetRange(0,255)
m_SetVolume.SetPos(m_Music.GetVolume());//音量控件同步
// IDM_ABOUTBOX must be in the system command range.
m_StopReFrist.ModifyStyle(0,0,IDB_BITMAP2);//控件2载入位图,设置按钮风格
m_StopReFrist.SetBitmap(LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP2))); //加载位图
m_Play.ModifyStyle(0,0,IDB_BITMAP1);//控件2载入位图,设置按钮风格
m_Play.SetBitmap(LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP1))); //加载位图
m_rePlay.ModifyStyle(0,0,IDB_BITMAP4);//控件2载入位图,设置按钮风格
m_rePlay.SetBitmap(LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP4))); //加载位图
m_UpPlay.ModifyStyle(0,0,IDB_BITMAP5);//控件2载入位图,设置按钮风格
m_UpPlay.SetBitmap(LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP5))); //加载位图
m_DowmPlay.ModifyStyle(0,0,IDB_BITMAP6);//控件2载入位图,设置按钮风格
m_DowmPlay.SetBitmap(LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP6))); //加载位图
SetTimer(1,500,NULL);
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 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, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
}
void CPlayerDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CPlayerDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
if (IsIconic())
{
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
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);
}
else
{
CDialog::OnPaint();
}
HBITMAP bmpHandle =(HBITMAP)LoadImage(NULL,"F:\\c++\\项目\\位图5\\2.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
CBitmap bmpPicture;
CDC mdcPicture;
CBitmap *bmpFromHandle=bmpPicture.FromHandle(bmpHandle);
CRect rectPicture;
rectPicture.left=20;
rectPicture.right=100;
rectPicture.bottom=100;
rectPicture.top=10;
mdcPicture.CreateCompatibleDC(&dc);
CBitmap *bmpPrevious=mdcPicture.SelectObject(bmpFromHandle);
ScreenToClient(&rectPicture);
dc.BitBlt(0,0,800,500,&mdcPicture,0,0,SRCCOPY);
dc.SelectObject(bmpHandle);
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CPlayerDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
void CPlayerDlg::OnStopReFirst()
{
// TODO: Add your control notification handler code here
m_Play.ModifyStyle(0,0,IDB_BITMAP1);//控件1载入位图,设置按钮风格
m_Play.SetBitmap(LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP1))); //控件1加载位图
m_Music.Play(m_Music.GetVolume(),0,1);
m_Music.Stop();
i_PlayTime=0;
RePlay=false;
}
void CPlayerDlg::OnReleasedcaptureSetShowLongth(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
if(m_Music.GetPlayState())
{
i_PlayTime= 2 * m_SetShowLongth.GetPos();
m_Music.SetPlayto(1000 * i_PlayTime);
}
*pResult = 0;
}
void CPlayerDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
nIDEvent=1;
if(m_Music.GetPlayState())
{
if(i_PlayTime/2<i_MusicLongth/1000)
{
i_PlayTime++;
}
else
{
OnStopReFirst() ;
i_PlayTime=0;
}
m_Play.ModifyStyle(0,0,IDB_BITMAP3);//载入位图,设置按钮风格
m_Play.SetBitmap(LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP3))); //加载位图
}
else
{
m_Play.ModifyStyle(0,0,IDB_BITMAP1);//载入位图,设置按钮风格
m_Play.SetBitmap(LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP1))); //加载位图
}
m_SetShowLongth.SetPos(i_PlayTime/2);
if(RePlay)
{
//AfxMessageBox(szPath);
if(!m_Music.GetPlayState())
{
fr++;
m_list.SetCurSel(fr);
mfc播放器含有源代码核心代码完全自己写
3星 · 超过75%的资源 需积分: 9 182 浏览量
2011-07-12
17:16:35
上传
评论 1
收藏 1.26MB RAR 举报
wuchun1
- 粉丝: 1
- 资源: 5
最新资源
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
- C语言实现直接插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序、计数排序,并带图详解.zip
- 常用工具集参考用于图像等数据处理
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
前往页