?? traceview.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 + -