📄 progressstatusbar.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 + -