📄 view_runlog.cpp
字号:
// View_RunLog.cpp : 实现文件
//
#include "stdafx.h"
#include "LogAlert.h"
#include "View_RunLog.h"
#include "LogAlertDoc.h"
// CView_RunLog
CView_RunLog* CView_RunLog::m_pCurrent=NULL;
BOOL CView_RunLog::m_bInited=FALSE;
DWORD CView_RunLog::m_dwLogLimit=100;
DWORD CView_RunLog::m_dwTotalCount=0;
IMPLEMENT_DYNCREATE(CView_RunLog, CListView)
CView_RunLog::CView_RunLog()
{
//LVS_EX_HEADERDRAGDROP
m_pCurrent=this;
}
CView_RunLog::~CView_RunLog()
{
}
BEGIN_MESSAGE_MAP(CView_RunLog, CListView)
ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw)
END_MESSAGE_MAP()
// CView_RunLog 诊断
#ifdef _DEBUG
void CView_RunLog::AssertValid() const
{
CListView::AssertValid();
}
void CView_RunLog::Dump(CDumpContext& dc) const
{
CListView::Dump(dc);
}
#endif //_DEBUG
BOOL CView_RunLog::Log_Add_Real(CString strLogContent)
{
if (NULL==m_pCurrent) return FALSE;
if (!m_bInited)
{
m_bInited=TRUE;
DWORD dwTemp=m_pCurrent->GetListCtrl().GetExtendedStyle();
dwTemp|=LVS_EX_FULLROWSELECT;
m_pCurrent->GetListCtrl().SetExtendedStyle(dwTemp);
dwTemp=GetWindowLong(m_pCurrent->GetListCtrl().GetSafeHwnd(),GWL_STYLE);
dwTemp|=LVS_REPORT;
SetWindowLong(m_pCurrent->GetListCtrl().GetSafeHwnd(),GWL_STYLE,dwTemp);
m_pCurrent->GetListCtrl().InsertColumn(0,"Time",LVCFMT_LEFT,150);
m_pCurrent->GetListCtrl().InsertColumn(1,"Content",LVCFMT_LEFT,500);
}
CTime time = CTime::GetCurrentTime();
CString strTime;
m_dwTotalCount++;
m_pCurrent->GetListCtrl().InsertItem(0,time.Format( _T("%Y-%m-%d %H:%M:%S") ));
m_pCurrent->GetListCtrl().SetItemData(0,m_dwTotalCount);
m_pCurrent->GetListCtrl().SetItemText(0,1,strLogContent);
m_pCurrent->GetListCtrl().DeleteItem(m_dwLogLimit);
return TRUE;
}
BOOL CView_RunLog::Log_Add( LPCTSTR lpszFormat, ... )
{
ASSERT(AfxIsValidString(lpszFormat));
CString retval;
va_list argList;
va_start(argList, lpszFormat);
retval.FormatV(lpszFormat, argList);
va_end(argList);
return Log_Add_Real( retval );
}
// CView_RunLog 消息处理程序
void CView_RunLog::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)
{
NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNMHDR );
*pResult = 0;
DWORD dwTemp;
if ( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage )
{
*pResult = CDRF_NOTIFYITEMDRAW;
}
else if ( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage )
{
*pResult = CDRF_NOTIFYSUBITEMDRAW;
}
else if ( (CDDS_ITEMPREPAINT | CDDS_SUBITEM) == pLVCD->nmcd.dwDrawStage )
{
int nItem = static_cast<int> (pLVCD->nmcd.dwItemSpec);
int nSubItem = pLVCD->iSubItem;
//CListCtrl* pList=(CListCtrl*)CWnd::FromHandle(m_hWnd);
CString strText=GetListCtrl().GetItemText(nItem,1);//注意此句是修改的,上面封住的是在CMyListCtrl中的,仅此而已!!!!!!!!!!!!!!
dwTemp=GetListCtrl().GetItemData(nItem);
dwTemp=dwTemp%2;
dwTemp=dwTemp*20+235;
//根据这个序列号计算颜色
pLVCD->clrTextBk=RGB(dwTemp,dwTemp,dwTemp);
*pResult = CDRF_DODEFAULT;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -