#pragma once #include "afxdialogex.h" #include "AlarmManager.h" #define ID_MSG_ALARMDLG_HIDE WM_USER + 1024 // CAlarmDlg 对话框 class CAlarmDlg : public CDialogEx { DECLARE_DYNAMIC(CAlarmDlg) public: CAlarmDlg(CWnd* pParent = nullptr); // 标准构造函数 virtual ~CAlarmDlg(); private: void InitRxWindow(); void Resize(); void LoadAlarms(); void UpdatePageData(); void UpdatePageControls(); void FillDataToListCtrl(CListCtrl* pListCtrl, const std::vector& vecData); void InsertAlarmData(CListCtrl* pListCtrl, const AlarmData& alarmData); std::string getCurrentTimeString(); private: COLORREF m_crBkgnd; HBRUSH m_hbrBkgnd; IObserver* m_pObserver; // 搜索关键字 int m_nSeverityLevel; std::string m_strDeviceName; std::string m_strUnitName; std::string m_strKeyword; // 页码 int m_nCurPage; int m_nTotalPages; // 日期 int m_nDateTimeFlag; char m_szTimeStart[64]; char m_szTimeEnd[64]; // 控件 CDateTimeCtrl m_dateTimeStart; CDateTimeCtrl m_dateTimeEnd; // 对话框数据 #ifdef AFX_DESIGN_TIME enum { IDD = IDD_DIALOG_ALARM }; #endif protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 virtual BOOL OnInitDialog(); virtual BOOL DestroyWindow(); afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); afx_msg void OnDestroy(); afx_msg void OnClose(); afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg void OnCbnSelchangeComboDatetime(); afx_msg void OnBnClickedButtonSearch(); afx_msg void OnBnClickedButtonExport(); afx_msg void OnBnClickedButtonPrevPage(); afx_msg void OnBnClickedButtonNextPage(); DECLARE_MESSAGE_MAP() };