// AutoFileCleanupToolDlg.h: 头文件 // #pragma once // CAutoFileCleanupToolDlg 对话框 class CAutoFileCleanupToolDlg : public CDialogEx { // 构造 public: CAutoFileCleanupToolDlg(CWnd* pParent = nullptr); // 标准构造函数 private: void PerformCleanupTask(); void SaveSettings(); void LoadSettings(); void StartCleanup(); void StopCleanup(); void UpdateControlStates(); void AppendLogLineBatchBegin(); void AppendLogLineBatchEnd(); void TrimRichEditLineLimit(int maxLines = 100); void AppendLogLineRichStyled(const CString& content, COLORREF color = RGB(0, 0, 0)); void HighlightAllMatches(const CString& strSearch, COLORREF clrHighlight = RGB(255, 165, 0)); // 对话框数据 #ifdef AFX_DESIGN_TIME enum { IDD = IDD_AUTOFILECLEANUPTOOL_DIALOG }; #endif protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 // 实现 protected: HICON m_hIcon; // 生成的消息映射函数 virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnPaint(); afx_msg void OnClose(); afx_msg void OnTimer(UINT_PTR nIDEvent); afx_msg void OnTrayRestore(); afx_msg void OnTrayExit(); afx_msg LRESULT OnTrayIconClick(WPARAM wParam, LPARAM lParam); afx_msg void OnBnClickedButtonBrowseSource(); afx_msg void OnBnClickedButtonBrowseTarget(); afx_msg void OnBnClickedButtonStartCleanup(); afx_msg void OnBnClickedButtonStopCleanup(); afx_msg HCURSOR OnQueryDragIcon(); DECLARE_MESSAGE_MAP() // 定时器相关成员变量 BOOL m_bCleanupRunning; // 是否正在自动清理 UINT_PTR m_nCleanupTimerId; // 定时器 ID(非零表示启动中) // 托盘图标相关成员变量 NOTIFYICONDATA m_trayIconData; // 托盘图标数据 UINT m_nTrayIconID; // 托盘图标ID BOOL m_bTrayIconCreated; // 标记托盘图标是否创建成功 BOOL m_bExitingFromTray; // 标记是否托盘退出 // 控件相关成员变量 CString m_strSourceFolder; // 源目录路径(待清理的文件夹) CString m_strTargetFolder; // 目标目录路径(已完成的文件夹,用于比对) int m_nScanInterval; // 扫描间隔时间(单位:分钟) BOOL m_bEnableAutoStart; // 是否启用自动启动清理(启动软件时自动开始清理) BOOL m_bSafeMode; // 是否启用安全模式(仅模拟清理,不真正删除文件) BOOL m_bDeleteEmptyFolders; // 是否删除空文件夹(清理时一并删除空目录) CRichEditCtrl m_ctrlLog; // 日志控件(用于显示清理过程的日志信息) };