// CPageCollectionEvent.cpp: 实现文件
|
//
|
|
#include "stdafx.h"
|
#include "Servo.h"
|
#include "CPageCollectionEvent.h"
|
#include "afxdialogex.h"
|
|
|
// CPageCollectionEvent 对话框
|
|
IMPLEMENT_DYNAMIC(CPageCollectionEvent, CHMPropertyPage)
|
|
CPageCollectionEvent::CPageCollectionEvent(CWnd* pParent /*=nullptr*/)
|
: CHMPropertyPage(IDD_PAGE_COLLECTION_EVENT, pParent)
|
{
|
|
}
|
|
CPageCollectionEvent::~CPageCollectionEvent()
|
{
|
}
|
|
void CPageCollectionEvent::DoDataExchange(CDataExchange* pDX)
|
{
|
CDialogEx::DoDataExchange(pDX);
|
DDX_Control(pDX, IDC_LIST1, m_listCtrl);
|
}
|
|
|
BEGIN_MESSAGE_MAP(CPageCollectionEvent, CHMPropertyPage)
|
ON_WM_CTLCOLOR()
|
ON_WM_DESTROY()
|
ON_WM_SIZE()
|
END_MESSAGE_MAP()
|
|
|
// CPageCollectionEvent 消息处理程序
|
|
|
BOOL CPageCollectionEvent::OnInitDialog()
|
{
|
CHMPropertyPage::OnInitDialog();
|
|
// 读出列宽
|
CString strIniFile, strItem;
|
strIniFile.Format(_T("%s\\configuration.ini"), (LPTSTR)(LPCTSTR)theApp.m_strAppDir);
|
int width[8] = { 0, 218, 180, 180, 180, 180, 180, 180 };
|
for (int i = 0; i < 8; i++) {
|
strItem.Format(_T("Col_%d_Width"), i);
|
width[i] = GetPrivateProfileInt("PageCollectionListCtrl", strItem, width[i], strIniFile);
|
}
|
|
|
// 报表控件
|
DWORD dwStyle = m_listCtrl.GetExtendedStyle();
|
dwStyle |= LVS_EX_FULLROWSELECT;
|
dwStyle |= LVS_EX_GRIDLINES;
|
m_listCtrl.SetExtendedStyle(dwStyle);
|
|
HIMAGELIST imageList = ImageList_Create(24, 24, ILC_COLOR24, 1, 1);
|
ListView_SetImageList(m_listCtrl.GetSafeHwnd(), imageList, LVSIL_SMALL);
|
m_listCtrl.InsertColumn(0, _T(""), LVCFMT_RIGHT, width[0]);
|
m_listCtrl.InsertColumn(1, _T("CEID"), LVCFMT_LEFT, width[1]);
|
m_listCtrl.InsertColumn(2, _T("CE Name"), LVCFMT_LEFT, width[2]);
|
m_listCtrl.InsertColumn(3, _T("Descriptions"), LVCFMT_LEFT, width[3]);
|
m_listCtrl.InsertColumn(4, _T("Attached RPTID"), LVCFMT_LEFT, width[4]);
|
loadCollectionEvents();
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
// 异常: OCX 属性页应返回 FALSE
|
}
|
|
|
HBRUSH CPageCollectionEvent::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
{
|
HBRUSH hbr = CHMPropertyPage::OnCtlColor(pDC, pWnd, nCtlColor);
|
|
// TODO: 在此更改 DC 的任何特性
|
|
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
|
return hbr;
|
}
|
|
|
void CPageCollectionEvent::OnDestroy()
|
{
|
CHMPropertyPage::OnDestroy();
|
|
// 保存列宽
|
CString strIniFile, strItem, strTemp;
|
strIniFile.Format(_T("%s\\configuration.ini"), (LPTSTR)(LPCTSTR)theApp.m_strAppDir);
|
CHeaderCtrl* pHeader = m_listCtrl.GetHeaderCtrl();
|
for (int i = 0; i < pHeader->GetItemCount(); i++) {
|
RECT rect;
|
pHeader->GetItemRect(i, &rect);
|
strItem.Format(_T("Col_%d_Width"), i);
|
strTemp.Format(_T("%d"), rect.right - rect.left);
|
WritePrivateProfileString("PageCollectionListCtrl", strItem, strTemp, strIniFile);
|
}
|
}
|
|
|
void CPageCollectionEvent::OnSize(UINT nType, int cx, int cy)
|
{
|
CHMPropertyPage::OnSize(nType, cx, cy);
|
if (GetDlgItem(IDC_LIST1) == nullptr) return;
|
|
CWnd* pItem;
|
CRect rcClient, rcItem;
|
GetClientRect(&rcClient);
|
m_listCtrl.MoveWindow(12, 12, rcClient.Width() - 24, rcClient.Height() - 24);
|
}
|
|
void CPageCollectionEvent::loadCollectionEvents()
|
{
|
auto& collectionEvent = theApp.m_model.m_hsmsPassive.getCollectionEvents();
|
for (auto item : collectionEvent) {
|
int index = m_listCtrl.InsertItem(m_listCtrl.GetItemCount(), _T(""));
|
m_listCtrl.SetItemData(index, (DWORD_PTR)item);
|
m_listCtrl.SetItemText(index, 1, std::to_string(item->getEventId()).c_str());
|
m_listCtrl.SetItemText(index, 2, item->getName().c_str());
|
m_listCtrl.SetItemText(index, 3, item->getDescription().c_str());
|
m_listCtrl.SetItemText(index, 4, item->getReportIdsText().c_str());
|
}
|
}
|