|
// 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; // 日志控件(用于显示清理过程的日志信息)
|
};
|