?? evttypeconfigdlg.cpp
字號:
// EvtTypeConfigDlg.cpp : implementation file
//
#include "stdafx.h"
#include "realev.h"
#include "EvtTypeConfigDlg.h"
#include "XListCtrl.h"
#include "RealEvView.h"
#include "mainfrm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CEvtTypeConfigDlg dialog
CEvtTypeConfigDlg::CEvtTypeConfigDlg(CWnd* pParent /*=NULL*/,evtdb* pdb)
: CDialog(CEvtTypeConfigDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CEvtTypeConfigDlg)
//}}AFX_DATA_INIT
m_pEvtDb = pdb;
m_pNames = NULL;
m_pTypes = NULL;
m_pColors = NULL;
m_nTypeCounts = 0;
}
void CEvtTypeConfigDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CEvtTypeConfigDlg)
DDX_Control(pDX, IDC_LIST, m_list);
// DDX_Control(pDX, IDC_MCOMLIST, m_forcolor);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CEvtTypeConfigDlg, CDialog)
//{{AFX_MSG_MAP(CEvtTypeConfigDlg)
ON_BN_CLICKED(IDOK, On_EvtConfigDlg_OK)
ON_WM_TIMER()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CEvtTypeConfigDlg message handlers
void CEvtTypeConfigDlg::FillListCtrl(CMyListCtrl1 &list)
{
m_nTypeCounts = m_pEvtDb->GetEvtTypeCounts();
m_pNames = new CString[m_nTypeCounts];
m_pTypes = new WORD[m_nTypeCounts];
m_pColors = new COLORREF[m_nTypeCounts];
m_pEvtDb->GetEventType(m_pNames,m_pTypes,m_pColors);
list.LockWindowUpdate(); // ***** lock window updates while filling list *****
CString str;
int nItem, nSubItem;
BOOL bResult;
// insert the items and subitems into the list
for (nItem = 0; nItem < m_nTypeCounts; nItem++)
{
for (nSubItem = 0; nSubItem < list.m_HeaderCtrl.GetItemCount(); nSubItem++)//7
{
if (nSubItem == 0)
{
bResult=m_pEvtDb->GetIfShow(nItem);
list.InsertItem(nItem, _T(""));
list.SetCheckbox(nItem, nSubItem, bResult);
list.SetEnabled(nItem,m_pEvtDb->GetIfShow(nItem));
}
list.SetItemText(nItem, nSubItem, _T(""), RGB(0,0,0), RGB(0,200,0));
if (nSubItem == 1)
{
str = m_pNames[nItem];//_T("告警名稱");
list.SetItemText(nItem, nSubItem, str);
}
if (nSubItem == 2)
{
if(!m_pEvtDb->GetIfShow(nItem))
bResult=m_pEvtDb->SetIfPlaySound(nItem,0);
bResult=m_pEvtDb->GetIfPlaySound(nItem);
list.SetCheckbox(nItem, nSubItem, bResult);
}
if (nSubItem == 3)
{
if(!m_pEvtDb->GetIfShow(nItem))
bResult=m_pEvtDb->SetIfPlayRing(nItem,0);
bResult=m_pEvtDb->GetIfPlayRing(nItem);
list.SetCheckbox(nItem, nSubItem, bResult);
}
if (nSubItem == 4)
{
if(!m_pEvtDb->GetIfShow(nItem))
bResult=m_pEvtDb->SetIfPlayAlarm(nItem,0);
bResult=m_pEvtDb->GetIfPlayAlarm(nItem);
list.SetCheckbox(nItem, nSubItem, bResult);
}
if (nSubItem == 5)
{
if(!m_pEvtDb->GetIfShow(nItem))
bResult=m_pEvtDb->SetIfPicture(nItem,0);
bResult=m_pEvtDb->GetIfPicture(nItem);
list.SetCheckbox(nItem, nSubItem, bResult);
}
if (nSubItem == 6)
{
if(!m_pEvtDb->GetIfShow(nItem))
bResult=m_pEvtDb->SetIfPrint(nItem,0);
bResult=m_pEvtDb->GetIfPrint(nItem);
list.SetCheckbox(nItem, nSubItem, bResult);
}
/*
*
if (nSubItem == 6) // text
{
int c_EventCode=m_pTypes[nItem];//m_pEvtDb->GetEvtTypeCounts();//GetEventCode(nItem);
str.Format("類型為:%d",c_EventCode);
list.SetItemText(nItem, nSubItem, str);
}
*/
}
}
#ifndef NO_XLISTCTRL_TOOL_TIPS
// set tool tips in second row
for (nItem = 0; nItem < m_nTypeCounts; nItem++)
{
for (nSubItem = 0; nSubItem <7; nSubItem++)
{
str.Format(_T("設(shè)置 %s"), m_pNames[nItem]);
list.SetItemToolTipText(nItem, nSubItem, str);
}
}
#endif
list.UnlockWindowUpdate(); // ***** unlock window updates *****
}
void CEvtTypeConfigDlg::InitListCtrl(CMyListCtrl1 &list)
{
CRect rect;
list.GetWindowRect(&rect);
int w = rect.Width() - 2;
int colwidths[7] = { 8,20,8,8,8,10,8};
TCHAR * lpszHeaders[] = { _T("顯示"),
_T("告警名稱"),
_T("語音"),
_T("電鈴"),
_T("電笛"),
_T("推畫面"),
_T("打印"),
//_T("事項句"),
NULL };
int i;
int total_cx = 0;
LV_COLUMN lvcolumn;
memset(&lvcolumn, 0, sizeof(lvcolumn));
for (i = 0; ; i++)
{
if (lpszHeaders[i] == NULL)
break;
lvcolumn.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
lvcolumn.fmt = (i == 1) ? LVCFMT_LEFT : LVCFMT_CENTER;
lvcolumn.pszText = lpszHeaders[i];
lvcolumn.iSubItem = i;
lvcolumn.cx = (lpszHeaders[i+1] == NULL) ? 100 : (w * colwidths[i]) /64;
total_cx += lvcolumn.cx;
list.InsertColumn(i, &lvcolumn);
}
VERIFY(list.m_cImageList.Create(IDB_CHECKBOXES, 16,3, RGB(255, 0, 255)));
list.m_HeaderCtrl.SetImageList(&list.m_cImageList);
HDITEM hditem;
for (i = 0; i < list.m_HeaderCtrl.GetItemCount(); i++)
{
hditem.mask = HDI_IMAGE | HDI_FORMAT;
list.m_HeaderCtrl.GetItem(i, &hditem);
hditem.fmt |= HDF_IMAGE;
list.m_HeaderCtrl.SetItem(i, &hditem);
}
memset(&lvcolumn, 0, sizeof(lvcolumn));
for (i = 0; ; i++)
{
if (lpszHeaders[i] == NULL)
break;
lvcolumn.mask = LVCF_FMT | LVCF_SUBITEM;
lvcolumn.fmt = (i == 1) ? LVCFMT_LEFT : LVCFMT_CENTER;
lvcolumn.iSubItem = i;
list.SetColumn(i, &lvcolumn);
}
}
BOOL CEvtTypeConfigDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_list.m_pEvtDb=this->m_pEvtDb;
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_TRACKSELECT);
m_list.EnableToolTips(TRUE);
InitListCtrl(m_list);
FillListCtrl(m_list);
return TRUE;
}
void CEvtTypeConfigDlg::On_EvtConfigDlg_OK()
{
CRealEvView* pView=((CRealEvView*)((CFrameWnd*)AfxGetApp()->m_pMainWnd)->GetActiveView());
pView->UpdateData(true);
//pView->m_lsEvent.DeleteAllItems();
m_pEvtDb->SetEventType();
pView->InitDropList();
pView->UpdateWarn();
CDialog::OnOK();
}
void CEvtTypeConfigDlg::OnCancel()
{
CDialog::OnCancel();
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -