⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlgsetupstatuswnd.cpp

📁 类似flashget下载工具代码 本来想在完善了上传的
💻 CPP
字号:
// DlgSetupStatusWnd.cpp : implementation file
//

#include "stdafx.h"

#include "DlgSetupStatusWnd.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDlgSetupStatusWnd

CDlgSetupStatusWnd::CDlgSetupStatusWnd()
{
}

CDlgSetupStatusWnd::~CDlgSetupStatusWnd()
{
}


BEGIN_MESSAGE_MAP(CDlgSetupStatusWnd, CWnd)
	//{{AFX_MSG_MAP(CDlgSetupStatusWnd)
	ON_WM_PAINT()
	ON_WM_CREATE()
	ON_WM_ERASEBKGND()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()


/////////////////////////////////////////////////////////////////////////////
// CDlgSetupStatusWnd message handlers
void CDlgSetupStatusWnd::SetStatusText(CString strText)
{
	m_strText = strText;

	if (GetSafeHwnd()) Invalidate();
}

BOOL CDlgSetupStatusWnd::CreateEx(CWnd *pParent, CRect rc, UINT uID, long lParam)
{
	return Create(0, 0, WS_CHILD|WS_BORDER|WS_VISIBLE, rc, pParent, uID);
}

int CDlgSetupStatusWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CWnd::OnCreate(lpCreateStruct) == -1)
		return -1;

	m_font.CreateFont(-12, 0, 0, 0, 400, 0, 0, 0, 134, 0, 0, 0, 2, "宋体");	
	// m_bmpBk.LoadBitmap(IDB_BITMAP_SETUP_DLG_STATUS);
	
	return 0;
}

BOOL CDlgSetupStatusWnd::OnEraseBkgnd(CDC* pDC) 
{
	/*
	CDC memdc;
	memdc.CreateCompatibleDC(pDC);
	memdc.SelectObject(m_bmpBk);

    CRect rc;
    pDC->GetClipBox(&rc);
	
	pDC->BitBlt(rc.left, rc.top, rc.Width(), rc.Height(),
		&memdc, rc.left, rc.top, SRCCOPY); 

  //*/
	
    CRect rc;
    pDC->GetClipBox(&rc);
	DrawFace(RGB(255, 255, 255), RGB(233, 235, 254), rc, rc, pDC);

	return TRUE;
	
	// return CWnd::OnEraseBkgnd(pDC);
}


void CDlgSetupStatusWnd::OnPaint() 
{
	CPaintDC dc(this); // device context for painting

	CRect rc;
    GetClientRect(rc);
	rc.DeflateRect(20, 0);

	CFont* pOldFont = dc.SelectObject(&m_font);	
	dc.SetBkMode(TRANSPARENT);
	dc.SetTextColor(RGB(180,180, 180));

	dc.DrawText(m_strText, rc, DT_LEFT|DT_VCENTER|DT_SINGLELINE);

	dc.SelectObject(pOldFont);

	/*
	CString strText;
	strText.Format("DL:%s/s, UL:%s/s", FormatSize(m_lDownRate).data(), FormatSize(m_lUpRate).data());
	CFont* pOldFont = dc.SelectObject(&m_font);
	
	CRect rc;
    GetClientRect(rc);
	dc.SetBkMode(TRANSPARENT);
	dc.DrawText(strText, rc, DT_CENTER|DT_VCENTER|DT_SINGLELINE);
	dc.SelectObject(pOldFont);
	//*/
	// Do not call CWnd::OnPaint() for painting messages
}


void CDlgSetupStatusWnd::DrawFace(COLORREF Top, COLORREF Bottom, CRect& rc, CRect CalRc, CDC* pDC)
{
	if (!CalRc.Height())
		return;

	
	int R, G, B;
	R = (GetRValue(Top) - GetRValue(Bottom)) / CalRc.Height();
	G = (GetGValue(Top) - GetGValue(Bottom)) / CalRc.Height();
	B = (GetBValue(Top) - GetBValue(Bottom)) / CalRc.Height();
	

	int ColR = GetRValue(Top), ColG = GetGValue(Top), ColB = GetBValue(Top);
	COLORREF ColMax = Top > Bottom ? Top : Bottom;
	COLORREF ColMin = Top > Bottom ? Bottom: Top;

	for(int i=0; i<rc.Height(); i++)
	{
		ColR -= R;
		ColG -= G;
		ColB -= B;
		
		CPen Pen;
		Pen.CreatePen(PS_SOLID, 1, RGB(ColR, ColG, ColB));
		CPen* pOldPen = pDC->SelectObject(&Pen);
				
		// pDC->SelectObject(&Pen);
		
		pDC->MoveTo(rc.left, rc.top+i);
		pDC->LineTo(rc.right, rc.top+i);
		
		pDC->SelectObject(pOldPen);
		Pen.DeleteObject();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -