一、创建垃圾文件选择界面
二、初始化垃圾文件选择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;
}
六、运行