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

📄 tracebar.cpp

📁 编译原理--词法扫描
💻 CPP
字号:
// TraceBar.cpp : implementation file
//

#include "stdafx.h"
#include "scan.h"
#include "TraceBar.h"

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

/////////////////////////////////////////////////////////////////////////////
// CTraceBar dialog

#define WM_INITDIALOGBAR WM_USER + 1

CTraceBar::CTraceBar(CWnd* pParent /*=NULL*/)
	: CDialogBar(/*CTraceBar::IDD, pParent*/)
{
	//{{AFX_DATA_INIT(CTraceBar)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CTraceBar::DoDataExchange(CDataExchange* pDX)
{
	//{{AFX_DATA_MAP(CTraceBar)
	DDX_Control(pDX, IDC_LIST, m_ListCtrl);
	//}}AFX_DATA_MAP
	CDialogBar::DoDataExchange(pDX);
}


BEGIN_MESSAGE_MAP(CTraceBar, CDialogBar)
	//{{AFX_MSG_MAP(CTraceBar)
	ON_WM_CREATE()
	ON_MESSAGE(WM_INITDIALOGBAR , InitDialogBarHandler )
	ON_WM_SIZE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTraceBar message handlers

int CTraceBar::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CDialogBar::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	// TODO: Add your specialized creation code here
	/* --------- 
	 *
	 *	We post WM_INITDIALOGBAR message here to dialog bar
	 *  But why call OninitDialog() directly lead to fail?
	 */
    PostMessage(WM_INITDIALOGBAR , 0 , 0 );
	return 0;
}

void CTraceBar::OnInitDialogBar()
{
	m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES );
	m_ListCtrl.InsertColumn(0,"Line",LVCFMT_LEFT,35);
	m_ListCtrl.InsertColumn(1,"Type",LVCFMT_LEFT,60);
	m_ListCtrl.InsertColumn(2,"Name",LVCFMT_LEFT,100);
/*	m_ListCtrl.InsertItem(0,"string1",0);
	m_ListCtrl.InsertItem(1,"name2",0);

	m_ListCtrl.SetItemText(0,1,"col1");
	m_ListCtrl.SetItemText(0,2,"col2");
*/
}

void CTraceBar::InitDialogBarHandler(WORD wParam, DWORD lParam)
{
	UpdateData(FALSE);
	OnInitDialogBar();
}

void CTraceBar::InsertColum(int col, char *str, int nWidth)
{
	UpdateData(FALSE);
	m_ListCtrl.InsertColumn(col,str,LVCFMT_LEFT,nWidth);
}

void CTraceBar::InsertItem(int row, char *str)
{
	UpdateData(FALSE);
	m_ListCtrl.InsertItem(row,str,0);
}

void CTraceBar::SetItemText(int row, int col, char *str)
{
	UpdateData(FALSE);
	m_ListCtrl.SetItemText(row,col,str);
}

void CTraceBar::ClearAll()
{
	m_ListCtrl.DeleteAllItems();
}



void CTraceBar::OnSize(UINT nType, int cx, int cy) 
{
	CDialogBar::OnSize(nType, cx, cy);

	CRect rect;
	GetClientRect(&rect);
	m_ListCtrl.MoveWindow(&rect);
}

⌨️ 快捷键说明

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