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

📄 progressstatusbar.cpp

📁 一个非常好的词法分析程序,加上语法的分析是一个难得一见的好实例
💻 CPP
字号:
// PktStatusBar.cpp : implementation file
//

#include "stdafx.h"
#include "ProgressStatusBar.h"

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

/////////////////////////////////////////////////////////////////////////////
// CProgressStatusBar

CProgressStatusBar::CProgressStatusBar()
{
	m_clrBk=RGB(0xE6,0xE6,0xFA);//	_T("淡紫色")	},
	m_clrEnd=RGB(0x00,0x93,0x00);//	_T("绿色")		},
	m_clrText=RGB(0x00,0x00,0x00);//	_T("黑色")		},
	m_clrStart=RGB(0xFF,0xFF,0x00);//	_T("黄色")		},
	m_range = 1000;
	bIsStop=false;
	m_hThread=NULL;
}

CProgressStatusBar::~CProgressStatusBar()
{
}


BEGIN_MESSAGE_MAP(CProgressStatusBar, CStatusBar)
	//{{AFX_MSG_MAP(CProgressStatusBar)
	ON_WM_CREATE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CProgressStatusBar message handlers

UINT RunProc(LPVOID pParam)
{
	CProgressStatusBar* m_wndStatusBar=(CProgressStatusBar*)pParam;

	m_wndStatusBar->m_ctlProgress.SetRange(0,m_wndStatusBar->m_range);
	m_wndStatusBar->m_ctlProgress.SetStartColor(m_wndStatusBar->m_clrStart);
	m_wndStatusBar->m_ctlProgress.SetEndColor(m_wndStatusBar->m_clrEnd);
	m_wndStatusBar->m_ctlProgress.SetBkColor(m_wndStatusBar->m_clrBk);

	while(!m_wndStatusBar->bIsStop)
	{
		for(int i=0;i<=m_wndStatusBar->m_range;i++)
		{
			m_wndStatusBar->m_ctlProgress.SetPos(i);
		}
		
		for(i=0;i<=m_wndStatusBar->m_range;i++)
		{
			m_wndStatusBar->m_ctlProgress.SetPos(m_wndStatusBar->m_range-i);
		}
	}

	return 0;
}


int CProgressStatusBar::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CStatusBar::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	// TODO: Add your specialized creation code here
	DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_TABSTOP;

	if(!m_ctlProgress.Create(dwStyle,CRect(100,0,350,18),//left,bottom,right,top
		this,IDC_PROGRESS))
	{
		TRACE(_T("Failed to create output window.\n"));
		return -1;
	}
	return 0;
}

bool CProgressStatusBar::StartRun()
{
	//创建线程函数
	m_hThread=::AfxBeginThread(RunProc,this);
	bIsStop=false;

	return true;
}

void CProgressStatusBar::StopRun()
{
	bIsStop =true;		
}


void CProgressStatusBar::SetViewProgress(bool bIsView)
{
	m_ctlProgress.ShowWindow(bIsView);
}

⌨️ 快捷键说明

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