This commit is contained in:
2013-07-20 23:25:46 +00:00
parent 44834e8bfa
commit ed0e9bba9d

View File

@@ -0,0 +1,204 @@
// CheckServerView.cpp : implementation of the CCheckServerView class
//
#include "stdafx.h"
#include "CheckServer.h"
//#include "CheckServerDoc.h"
#include "CheckServerView.h"
#include "..\\Common\\LCLayout.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
enum eClientMessagesView {
MESSAGESVIEW_COL_TIME = 0,
MESSAGESVIEW_COL_NAME,
MESSAGESVIEW_COL_MESSAGE,
};
/////////////////////////////////////////////////////////////////////////////
// CCheckServerView
IMPLEMENT_DYNCREATE(CCheckServerView, CListView)
BEGIN_MESSAGE_MAP(CCheckServerView, CListView)
//{{AFX_MSG_MAP(CCheckServerView)
ON_WM_CREATE()
ON_WM_DESTROY()
ON_WM_PAINT()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCheckServerView construction/destruction
CCheckServerView::CCheckServerView()
{
// TODO: add construction code here
}
CCheckServerView::~CCheckServerView()
{
}
BOOL CCheckServerView::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style |= LVS_REPORT;
cs.style |= LVS_SHOWSELALWAYS;
cs.style |= LVS_SINGLESEL;
return CListView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CCheckServerView diagnostics
#ifdef _DEBUG
void CCheckServerView::AssertValid() const
{
CListView::AssertValid();
}
void CCheckServerView::Dump(CDumpContext& dc) const
{
CListView::Dump(dc);
}
/*
CCheckServerDoc* CCheckServerView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CCheckServerDoc)));
return (CCheckServerDoc*)m_pDocument;
}
*/
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CCheckServerView message handlers
void CCheckServerView::OnPaint()
{
CListCtrl& lc = GetListCtrl();
Default();
if (!lc.GetItemCount()) {
CDC* pDC = GetDC();
int nSavedDC = pDC->SaveDC();
CRect rc;
GetClientRect(&rc);
CHeaderCtrl* pHC;
pHC = lc.GetHeaderCtrl();
if (pHC != NULL)
{
CRect rcH;
pHC->GetItemRect(0, &rcH);
rc.top += rcH.bottom;
}
pDC->FillRect(rc, &CBrush(::GetSysColor(COLOR_WINDOW)));
pDC->SetBkMode(TRANSPARENT);
pDC->SelectStockObject(ANSI_VAR_FONT);
pDC->DrawText(CString((LPCSTR)IDS_EMPTY_LIST), rc,
DT_CENTER|DT_WORDBREAK|DT_NOPREFIX|
DT_NOCLIP|DT_VCENTER|DT_SINGLELINE);
pDC->RestoreDC(nSavedDC);
ReleaseDC(pDC);
}
}
int CCheckServerView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CListView::OnCreate(lpCreateStruct) == -1)
return -1;
CString szBuf;
CListCtrl& lc = GetListCtrl();
lc.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_SUBITEMIMAGES);
// insert columns
lc.InsertColumn(MESSAGESVIEW_COL_TIME, "시간", LVCFMT_LEFT, 130);
lc.InsertColumn(MESSAGESVIEW_COL_NAME, "이름", LVCFMT_LEFT, 130);
lc.InsertColumn(MESSAGESVIEW_COL_MESSAGE, "내용", LVCFMT_LEFT, 280);
CLCLayout::RestoreLayout(&lc, "CheckServerView");
return 0;
}
void CCheckServerView::OnDestroy()
{
CLCLayout::SaveLayout(&GetListCtrl(), "CheckServerView");
CListView::OnDestroy();
}
void CCheckServerView::UpdateCols()
{
CString szBuf;
LVCOLUMN pCol;
CListCtrl& lc = GetListCtrl();
ZeroMemory(&pCol, sizeof(LVCOLUMN));
pCol.mask = LVCF_TEXT;
szBuf = "시간";
pCol.cchTextMax = szBuf.GetLength();
pCol.pszText = szBuf.GetBuffer(pCol.cchTextMax);
szBuf.ReleaseBuffer();
lc.SetColumn(MESSAGESVIEW_COL_TIME, &pCol);
szBuf = "이름";
pCol.cchTextMax = szBuf.GetLength();
pCol.pszText = szBuf.GetBuffer(pCol.cchTextMax);
szBuf.ReleaseBuffer();
lc.SetColumn(MESSAGESVIEW_COL_NAME, &pCol);
szBuf = "내용";
pCol.cchTextMax = szBuf.GetLength();
pCol.pszText = szBuf.GetBuffer(pCol.cchTextMax);
szBuf.ReleaseBuffer();
lc.SetColumn(MESSAGESVIEW_COL_MESSAGE, &pCol);
Invalidate();
}
void CCheckServerView::ClearView()
{
CListCtrl& lc = GetListCtrl();
lc.DeleteAllItems();
}
void CCheckServerView::AddMessage(CString szTime, CString szName, CString szMessage)
{
CListCtrl& lc = GetListCtrl();
lc.InsertItem(MESSAGESVIEW_COL_TIME, szTime, 0);
LV_ITEM lvi2;
lvi2.mask = LVIF_TEXT;// | LVIF_IMAGE;
lvi2.iItem = MESSAGESVIEW_COL_TIME; //item to set
lvi2.iSubItem = MESSAGESVIEW_COL_NAME;
lvi2.pszText = szName.GetBuffer(szName.GetLength());
szName.ReleaseBuffer();
lvi2.cchTextMax = szName.GetLength();
//lvi2.iImage = uSignIcon == -1 ? 2 : uSignIcon + 3; //image index
lc.SetItem(&lvi2);
LV_ITEM lvi3;
lvi3.mask = LVIF_TEXT;// | LVIF_IMAGE;
lvi3.iItem = MESSAGESVIEW_COL_TIME; //item to set
lvi3.iSubItem = MESSAGESVIEW_COL_MESSAGE;
lvi3.pszText = szMessage.GetBuffer(szMessage.GetLength());
szMessage.ReleaseBuffer();
lvi3.cchTextMax = szMessage.GetLength();
//lvi3.iImage = 1; //image index
lc.SetItem(&lvi3);
}