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