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

📄 view_runlog.cpp

📁 根据系统设定的日志类型,来判断用户操作的日志是否违规,形成报警
💻 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 + -