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

📄 traceview.cpp

📁 一个VC++编写的串口通信程序
💻 CPP
字号:
// TraceView.cpp : implementation file
//

#include "stdafx.h"
#include "ComDbg.h"
#include "TraceView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CTraceView

IMPLEMENT_DYNCREATE(CTraceView, CListView)

CTraceView::CTraceView()
{
	m_pctlList=NULL;
}

CTraceView::~CTraceView()
{
}


BEGIN_MESSAGE_MAP(CTraceView, CListView)
	//{{AFX_MSG_MAP(CTraceView)
		// NOTE - the ClassWizard will add and remove mapping macros here.
	//}}AFX_MSG_MAP
	ON_MESSAGE(EM_TRACE,OnTrace)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTraceView drawing

void CTraceView::OnDraw(CDC* pDC)
{
	CDocument* pDoc = GetDocument();
	// TODO: add draw code here
}

/////////////////////////////////////////////////////////////////////////////
// CTraceView diagnostics

#ifdef _DEBUG
void CTraceView::AssertValid() const
{
	CListView::AssertValid();
}

void CTraceView::Dump(CDumpContext& dc) const
{
	CListView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CTraceView message handlers

void CTraceView::OnInitialUpdate() 
{
	CListView::OnInitialUpdate();

	if(m_pctlList == NULL)
	{
		g_hWndTrace=m_hWnd;
		m_pctlList=&GetListCtrl();
		//=================================================
		//列表
		LVCOLUMN	lvc={0};
		
		lvc.mask=LVCF_TEXT|LVCF_FMT|LVCF_SUBITEM|LVCF_WIDTH;
		lvc.fmt=LVCFMT_LEFT;
	
		lvc.cx=60;
		lvc.iSubItem=0;
		lvc.pszText = _T("序号");
		m_pctlList->InsertColumn(lvc.iSubItem,&lvc);

		lvc.cx=200;
		lvc.iSubItem++;
		lvc.pszText = _T("时间");
		m_pctlList->InsertColumn(lvc.iSubItem,&lvc);

		lvc.cx=800;
		lvc.iSubItem++;
		lvc.pszText = _T("内容");
		m_pctlList->InsertColumn(lvc.iSubItem,&lvc);
	}
	
}

BOOL CTraceView::PreCreateWindow(CREATESTRUCT& cs) 
{
	cs.style |= LVS_REPORT;
	return CListView::PreCreateWindow(cs);
}

LRESULT CTraceView::OnTrace(WPARAM wParam,LPARAM)
{

	SYSTEMTIME	stm={0};
	::GetLocalTime(&stm);
	CString	szTrace=(LPCTSTR)wParam;

	CSingleLock l(&m_crit,TRUE);
	
	LV_ITEM lvi={0};
	CString	szItem;
	lvi.iItem=m_pctlList->GetItemCount();
	//编号
	szItem.Format(_T("%d"),lvi.iItem+1);
	lvi.mask=LVIF_TEXT;
	lvi.iSubItem=0;
	lvi.pszText=szItem.GetBuffer(0);
	m_pctlList->InsertItem(&lvi);

	//时间
	lvi.iSubItem++;
	szItem.Format("%04d-%02d-%02d %02d:%02d:%02d.%d",stm.wYear,stm.wMonth,stm.wDay,stm.wHour,stm.wMinute,stm.wSecond,stm.wMilliseconds);
	lvi.pszText=szItem.GetBuffer(0);
	m_pctlList->SetItem(&lvi);

	//内容
	lvi.iSubItem++;
	lvi.pszText=szTrace.GetBuffer(0);
	m_pctlList->SetItem(&lvi);

	return 0;
}

⌨️ 快捷键说明

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