C++写一个内存清理软件(四、垃圾清理)

37 篇文章 3 订阅
32 篇文章 0 订阅

一、创建垃圾文件选择界面

在这里插入图片描述

二、初始化垃圾文件选择check状态

类向导添加此函数后,加入下面代码:
在这里插入图片描述

三、重绘垃圾文件格式选择界面

将界面背景变为黑色
在这里插入图片描述

四、新建垃圾文件清理界面

在这里插入图片描述

五、清理

5.1 初始化驱动器

在这里插入图片描述

5.2 选项

垃圾文件读取
在这里插入图片描述

5.3 开始与结束清理

在这里插入图片描述

5.4 文件删除

void CDlgLoser::FileDelete(CString FilePath)
{
	CString num, str, Name, FileName;
	CFileFind file;
	if (FilePath.Right(1) != "\\") {
		FilePath += "\\";
	}
	BOOL bf;
	for (int i = 0; i < 25; i++) {
		num.Format("%d", i + 1);
		char ischeck[2];
		// 获得选中垃圾文件
		GetPrivateProfileString("垃圾文件类型", num, "", ischeck,
			2, "./litterfile.ini");
		str = ischeck;
		if (str == "1") {
			num.Format("%d", i + 31);
			char text[8];
			// 获得垃圾文件类型
			GetPrivateProfileString("垃圾文件类型", num, "", text,
				8, "./litterfile.ini");
			FileName = text;
			Name = FilePath + FileName;
			bf = file.FindFile(Name); // 查找文件
			while (bf) {
				bf = file.FindNextFile();
				if (!file.IsDots() && !file.IsDirectory()) { // 如果是垃圾文件
					DeleteFile(file.GetFilePath());// 删除垃圾文件
					m_list.InsertString(m_list.GetCount(), FilePath);
				}
			}
		}
	}
	FilePath += "*.*";
	bf = file.FindFile(FilePath); // 查找内容包括目录
	while (bf) {
		bf = file.FindNextFile(); // 查找下一个文件
		if (file.IsDots()) {
			continue;
		}
		else if (file.IsDirectory()) { // 如果是目录
			FilePath = file.GetFilePath();
			// 是目录时,继续递归调用函数删除该目录下的文件
			FileDelete(FilePath);
		}
	}
}

5.5 重绘

HBRUSH CDlgLoser::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
	HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);

	CBitmap m_BKGround;
	m_BKGround.LoadBitmap(IDB_BLANK);
	if (nCtlColor == CTLCOLOR_DLG)
	{
		// 定义一个位图画刷
		CBrush m_Brush(&m_BKGround);
		CRect rect;
		GetClientRect(rect);
		// 选中画刷
		pDC->SelectObject(&m_Brush);
		// 填充客户区域
		pDC->FillRect(rect, &m_Brush);
		return m_Brush;
	}
	else
		hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
	if (pWnd->GetDlgCtrlID() == IDC_STATIC_DEVICE)
	{
		CRect rect;
		pWnd->GetClientRect(rect);
		pDC->FillSolidRect(rect, RGB(0, 0, 0));
		pDC->SetTextColor(RGB(255, 255, 255));
	}
	if (pWnd->GetDlgCtrlID() == IDC_LIST2) {
		CRect rect;
		pWnd->GetClientRect(rect);
		pDC->FillSolidRect(rect, RGB(0, 0, 0));
		pDC->SetTextColor(RGB(255, 255, 255));
	}
	return hbr;
}

六、运行

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值