From 50a42e5d72e2f8cf92ff9b2273e0442977dbcefd Mon Sep 17 00:00:00 2001
From: LAPTOP-T815PCOQ\25526 <mr.liuyang@126.com>
Date: 星期三, 18 十二月 2024 18:28:02 +0800
Subject: [PATCH] 1. 对话框基类添加动态控件管理 2. 对话框基类主题切换功能
---
SourceCode/Bond/BondEq/CPageAlarm.cpp | 32 ++++++++++++++++++++++----------
1 files changed, 22 insertions(+), 10 deletions(-)
diff --git a/SourceCode/Bond/BondEq/CPageAlarm.cpp b/SourceCode/Bond/BondEq/CPageAlarm.cpp
index 0d76752..f03c56b 100644
--- a/SourceCode/Bond/BondEq/CPageAlarm.cpp
+++ b/SourceCode/Bond/BondEq/CPageAlarm.cpp
@@ -155,26 +155,36 @@
void CPageAlarm::LoadAlarms()
{
- CAlarmMonitor* pMonitor = (CAlarmMonitor*)theApp.m_model.getBonder().GetComponent("警告信息");
+ CAlarmMonitor* pMonitor = (CAlarmMonitor*)theApp.m_model.getBonder().GetComponent(ALARM_MONITOR);
+
+ // 当前正在发生的报警
pMonitor->Lock();
std::map<int, CAlarm*>& alarmings = pMonitor->getAlarmingMap();
- std::list< CAlarm*>& alarms = pMonitor->getAlarmRecords();
-
for (auto item : alarmings) {
AddAlarm(pMonitor, item.second);
}
- for (auto item : alarms) {
- AddAlarm(pMonitor, item);
- }
-
pMonitor->Unlock();
+
+
+ // 获取历史报警数据
+ auto vecData = AlarmManager::getInstance().getAllAlarms();
+
+ // 填充数据
+ CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST_ALARM);
+ for (auto item : vecData) {
+ pListCtrl->InsertItem(0, _T(""));
+ pListCtrl->SetItemText(0, 1, item[0].c_str());
+ pListCtrl->SetItemText(0, 2, item[1].c_str());
+ pListCtrl->SetItemText(0, 3, item[2].c_str());
+ pListCtrl->SetItemText(0, 4, item[3].c_str());
+ }
}
void CPageAlarm::AddAlarm(CAlarmMonitor* pMonitor, CAlarm* pAlarm)
{
if (pMonitor == nullptr) {
- pMonitor = (CAlarmMonitor*)theApp.m_model.getBonder().GetComponent("警告信息");
+ pMonitor = (CAlarmMonitor*)theApp.m_model.getBonder().GetComponent(ALARM_MONITOR);
}
CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST_ALARM);
pListCtrl->InsertItem(0, _T(""));
@@ -191,7 +201,7 @@
void CPageAlarm::UpdateAlarm(CAlarmMonitor* pMonitor, CAlarm* pAlarm)
{
if (pMonitor == nullptr) {
- pMonitor = (CAlarmMonitor*)theApp.m_model.getBonder().GetComponent("警告信息");
+ pMonitor = (CAlarmMonitor*)theApp.m_model.getBonder().GetComponent(ALARM_MONITOR);
}
CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST_ALARM);
for (int i = 0; i < pListCtrl->GetItemCount(); i++) {
@@ -208,7 +218,9 @@
CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST_ALARM);
for (int i = 0; i < pListCtrl->GetItemCount(); i++) {
CAlarm* pAlarm = (CAlarm*)pListCtrl->GetItemData(i);
- pAlarm->release();
+ if (pAlarm != nullptr) {
+ pAlarm->release();
+ }
}
return CDialogEx::DestroyWindow();
--
Gitblit v1.9.3