#pragma once #include "afxdialogex.h" #include "ListCtrlEx.h" #include "TransferManager.h" // CPageTransferLog 对话框 class CPageTransferLog : public CDialogEx { DECLARE_DYNAMIC(CPageTransferLog) public: CPageTransferLog(CWnd* pParent = nullptr); // 标准构造函数 virtual ~CPageTransferLog(); private: COLORREF m_crBkgnd; HBRUSH m_hbrBkgnd; IObserver* m_pObserver; // 搜索关键字 std::string m_strStatus; std::string m_strKeyword; // 页码 int m_nCurPage; int m_nTotalPages; // 日期 char m_szTimeStart[64]; char m_szTimeEnd[64]; // 控件 CDateTimeCtrl m_dateTimeStart; CDateTimeCtrl m_dateTimeEnd; CListCtrlEx m_listCtrl; void InitRxWindow(); void Resize(); void InitStatusCombo(); void InitTimeRangeCombo(); void InitDateTimeControls(); void LoadTransfers(); void UpdatePageData(); void UpdatePageControls(); void UpdateDateFilter(); void FillDataToListCtrl(const std::vector& vecData); void InsertTransferData(const TransferData& data); // 对话框数据 #ifdef AFX_DESIGN_TIME enum { IDD = IDD_PAGE_TRANSFER_LOG }; #endif protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 virtual BOOL OnInitDialog(); afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); afx_msg void OnDestroy(); afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg void OnTimer(UINT_PTR nIDEvent); afx_msg void OnCbnSelchangeComboDatetime(); afx_msg void OnCbnSelchangeComboStatusFilter(); afx_msg void OnBnClickedButtonSearch(); afx_msg void OnBnClickedButtonExport(); afx_msg void OnBnClickedButtonPrevPage(); afx_msg void OnBnClickedButtonNextPage(); DECLARE_MESSAGE_MAP() };