119 lines
2.2 KiB
C++
119 lines
2.2 KiB
C++
|
// BmpProgress.cpp : ʵ<><CAB5><EFBFBD>ļ<EFBFBD>
|
|||
|
//
|
|||
|
|
|||
|
#include "stdafx.h"
|
|||
|
#include "MusicPlayer.h"
|
|||
|
#include "BmpProgress.h"
|
|||
|
|
|||
|
|
|||
|
// CBmpProgress
|
|||
|
|
|||
|
IMPLEMENT_DYNAMIC(CBmpProgress, CProgressCtrl)
|
|||
|
|
|||
|
CBmpProgress::CBmpProgress()
|
|||
|
{
|
|||
|
m_NormalID = 0;
|
|||
|
m_DownID = 0;
|
|||
|
|
|||
|
m_Min = 0;
|
|||
|
m_Max = 0;
|
|||
|
}
|
|||
|
|
|||
|
CBmpProgress::~CBmpProgress()
|
|||
|
{
|
|||
|
m_BackDC.DeleteDC();
|
|||
|
m_FrontDC.DeleteDC();
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
BEGIN_MESSAGE_MAP(CBmpProgress, CProgressCtrl)
|
|||
|
ON_WM_PAINT()
|
|||
|
ON_WM_ERASEBKGND()
|
|||
|
// ON_WM_LBUTTONDOWN()
|
|||
|
END_MESSAGE_MAP()
|
|||
|
|
|||
|
|
|||
|
|
|||
|
// CBmpProgress <20><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
void CBmpProgress::OnPaint()
|
|||
|
{
|
|||
|
CPaintDC dc(this); // device context for painting
|
|||
|
// TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// <20><>Ϊ<EFBFBD><CEAA>ͼ<EFBFBD><CDBC>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD> CProgressCtrl::OnPaint()
|
|||
|
|
|||
|
if (m_NormalID && m_DownID)
|
|||
|
{
|
|||
|
dc.BitBlt(0,0,m_Pos,m_bmpSize.cy,&m_FrontDC,0,0,SRCCOPY);
|
|||
|
dc.BitBlt(m_Pos,0,m_bmpSize.cx - m_Pos + 1,m_bmpSize.cy,&m_BackDC,m_Pos,0,SRCCOPY);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
BOOL CBmpProgress::OnEraseBkgnd(CDC* pDC)
|
|||
|
{
|
|||
|
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ
|
|||
|
return FALSE;
|
|||
|
//return CProgressCtrl::OnEraseBkgnd(pDC);
|
|||
|
}
|
|||
|
|
|||
|
void CBmpProgress::LoadBitmap(int iNormal, int iDown)
|
|||
|
{
|
|||
|
m_NormalID = iNormal;
|
|||
|
m_DownID = iDown;
|
|||
|
|
|||
|
CBitmap bmpBackground;
|
|||
|
BITMAP bmpInfo;
|
|||
|
bmpBackground.LoadBitmap(m_NormalID);
|
|||
|
bmpBackground.GetBitmap(&bmpInfo);
|
|||
|
|
|||
|
m_BackDC.CreateCompatibleDC(NULL);
|
|||
|
m_BackDC.SelectObject(&bmpBackground);
|
|||
|
|
|||
|
m_bmpSize.cx = bmpInfo.bmWidth;
|
|||
|
m_bmpSize.cy = bmpInfo.bmHeight;
|
|||
|
|
|||
|
bmpBackground.DeleteObject();
|
|||
|
|
|||
|
bmpBackground.LoadBitmap(m_DownID);
|
|||
|
m_FrontDC.CreateCompatibleDC(NULL);
|
|||
|
m_FrontDC.SelectObject(&bmpBackground);
|
|||
|
|
|||
|
bmpBackground.DeleteObject();
|
|||
|
}
|
|||
|
|
|||
|
void CBmpProgress::SetPos(int nPos)
|
|||
|
{
|
|||
|
if (m_Max - m_Min > 0)
|
|||
|
{
|
|||
|
m_Pos = nPos * m_bmpSize.cx/(m_Max - m_Min);
|
|||
|
Invalidate();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
m_Max = m_Min = 0;
|
|||
|
}
|
|||
|
|
|||
|
Invalidate();
|
|||
|
}
|
|||
|
|
|||
|
void CBmpProgress::SetRange(int nMin, int nMax)
|
|||
|
{
|
|||
|
m_Max = nMax;
|
|||
|
m_Min = nMin;
|
|||
|
}
|
|||
|
|
|||
|
//void CBmpProgress::OnLButtonDown(UINT nFlags, CPoint point)
|
|||
|
//{
|
|||
|
// // TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ
|
|||
|
// CRect rc;
|
|||
|
// GetClientRect(&rc);
|
|||
|
//
|
|||
|
// int iPos = (point.x * (m_Max - m_Min)) / (rc.right - rc.left);
|
|||
|
//
|
|||
|
// SetPos(iPos);
|
|||
|
//
|
|||
|
// CProgressCtrl::OnLButtonDown(nFlags, point);
|
|||
|
//}
|