📄 infoformview.cpp
字号:
// InfoFormView.cpp : implementation file
//
#include "stdafx.h"
#include "OpcClientSpy.h"
#include "InfoFormView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CInfoFormView
IMPLEMENT_DYNCREATE(CInfoFormView, CFormView)
CInfoFormView::CInfoFormView()
: CFormView(CInfoFormView::IDD)
{
//{{AFX_DATA_INIT(CInfoFormView)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_pImageList = NULL;
}
CInfoFormView::~CInfoFormView()
{
if( m_pImageList )
delete m_pImageList;
}
void CInfoFormView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CInfoFormView)
DDX_Control(pDX, IDC_LIST_INFO, m_info);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CInfoFormView, CFormView)
//{{AFX_MSG_MAP(CInfoFormView)
ON_WM_CREATE()
ON_WM_SIZE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CInfoFormView diagnostics
#ifdef _DEBUG
void CInfoFormView::AssertValid() const
{
CFormView::AssertValid();
}
void CInfoFormView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CInfoFormView message handlers
//初始化列表的标题等。
void CInfoFormView::InitalListCtrl(void)
{
m_pImageList = new CImageList();
m_pImageList->Create(17, 17, ILC_COLOR, 1, 1);
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP_TAN);
m_pImageList->Add(&bitmap, (COLORREF)0x000000);
bitmap.DeleteObject();
bitmap.LoadBitmap(IDB_BITMAP_WENHAO);
m_pImageList->Add(&bitmap, (COLORREF)0x000000);
bitmap.DeleteObject();
m_info.SetImageList(m_pImageList,LVSIL_SMALL);
//插入标题
CRect rect;
m_info.DeleteAllItems();
m_info.GetClientRect(&rect);
int cx = rect.Width() * 1/2;
m_info.InsertColumn(0, "日期/时间", LVCFMT_LEFT,cx,0);
m_info.InsertColumn(1, "事件信息", LVCFMT_LEFT,m_nFullWidth-cx,1);
}
//将信息显示到列表
void CInfoFormView::ShowInfoToList(ImageEnum imageStyle,CString strTime,CString strInfo)
{
int maxitem = m_info.GetItemCount();
LVITEM lvitem;
lvitem.mask = LVIF_TEXT|LVIF_IMAGE;
lvitem.iItem = maxitem ;
lvitem.iSubItem = 0;
lvitem.iImage = (imageStyle==GANTANHAO?0:1);
lvitem.pszText = strTime.GetBuffer(strTime.GetLength());
m_info.InsertItem(&lvitem); // insert new item*/
//m_info.InsertItem(index,strInfo,imageStyle==GANTANHAO?0:1);
lvitem.mask = LVIF_TEXT;
lvitem.iItem = maxitem ;
lvitem.iSubItem = 1;
lvitem.pszText = strInfo.GetBuffer(strInfo.GetLength());
m_info.SetItem(&lvitem); // insert new item*/
//最多30个
m_info.EnsureVisible(maxitem,TRUE);//将最后一个显示出来
if( maxitem>=30 )
{
m_info.DeleteItem(0);
m_info.EnsureVisible(maxitem-1,TRUE);//将最后一个显示出来
}
}
//将信息显示到列表
void CInfoFormView::ShowInfoToList(ImageEnum imageStyle,int num,CString strInfo)
{
CTime ct;
CString strTime;
ct = CTime::GetCurrentTime();
strTime.Format("%d.%d.%d %d:%d:%d",ct.GetYear(),ct.GetMonth(),ct.GetDay(),
ct.GetHour(),ct.GetMinute(),ct.GetDay());
int maxitem = m_info.GetItemCount();
LVITEM lvitem;
lvitem.mask = LVIF_TEXT|LVIF_IMAGE;
lvitem.iItem = maxitem ;
lvitem.iSubItem = 0;
lvitem.iImage = (imageStyle==GANTANHAO?0:1);
lvitem.pszText = strTime.GetBuffer(strTime.GetLength());
m_info.InsertItem(&lvitem); // insert new item*/
//m_info.InsertItem(index,strInfo,imageStyle==GANTANHAO?0:1);
lvitem.mask = LVIF_TEXT;
lvitem.iItem = maxitem ;
lvitem.iSubItem = 1;
lvitem.pszText = strInfo.GetBuffer(strInfo.GetLength());
m_info.SetItem(&lvitem); // insert new item*/
//最多30个
m_info.EnsureVisible(maxitem,TRUE);//将最后一个显示出来
if( maxitem>=30 )
{
m_info.DeleteItem(0);
m_info.EnsureVisible(maxitem-1,TRUE);//将最后一个显示出来
}
}
int CInfoFormView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFormView::OnCreate(lpCreateStruct) == -1)
return -1;
m_nFullWidth = GetSystemMetrics(SM_CXSCREEN);
m_nFullHeight = GetSystemMetrics(SM_CYSCREEN );
return 0;
}
void CInfoFormView::OnSize(UINT nType, int cx, int cy)
{
CFormView::OnSize(nType, cx, cy);
CFormView::ShowScrollBar(SB_VERT,FALSE);
CFormView::ShowScrollBar(SB_HORZ,FALSE);
if (GetSafeHwnd())
{
if (m_info.GetSafeHwnd())
{
//CRect rect(0,0,m_nFullWidth,m_nFullHeight);
CRect rect(0,0,cx,cy);
m_info.MoveWindow(&rect);
}
}
}
void CInfoFormView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
//装入图标,并初始化列标题
InitalListCtrl();
CTime ct;
CString strInfo;
ct = CTime::GetCurrentTime();
strInfo.Format("%d.%d.%d %d:%d:%d",ct.GetYear(),ct.GetMonth(),ct.GetDay(),
ct.GetHour(),ct.GetMinute(),ct.GetDay());
ShowInfoToList(GANTANHAO,strInfo,"启动OPC服务检测软件");
}
//暂时没用到。
//滚动到最后一个,并删除超过20个的部分
void CInfoFormView::ScrollListToLast(void)
{
CRect rect;
m_info.GetClientRect(&rect);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -