“依米魔法邮箱”开发笔记
软件用MFC开发而成,具体有以下功能、特色:
- 文档加密解密
- 保存自定义后缀的文件(*.yimi)
- 打开自定义后缀的文件(*.yimi)
- 改变窗口背景色
- 改变窗口形状
- 改变光标图案
- 生成动态自定义软件图标
效果图如下
功能实现方法
我所选的是MFC基本对话框类型的应用程序,布局如下:
文档加密解密
加密核心代码:
//加密
char str;
for(int i = 0; i < m_strContent.GetLength(); i++)
{
str = m_strContent.GetAt(i);
str = str+i;
m_strContent.SetAt(i, str);
}
解密核心代码:
//判断是否是.yimi文件
if(dlg.GetFileExt()=="yimi")//是.yimi文件,则解密
{
//解密
char str;
for(int i = 0; i < m_strContent.GetLength(); i++)
{
str = m_strContent.GetAt(i);
str = str-i;
m_strContent.SetAt(i, str);
}
UpdateData(FALSE);//更新数据
}
具体请参见下面的“保存与打开自定义后缀的文件”。
保存自定义后缀的文件(*.yimi)
为编辑框空间关联Value类型的CString变量m_strContent;
为顶部静态文本关联Value类型的CString变量m_strTitle;
为“另存为”按钮添加BN_CLICKED消息映射,并添加映射函数,代码如下(包括保存文件、顶部显示文件相关信息和对*.yimi类型的文件进行加密处理):
void CMyDlg::OnButtonSave()
{
CFile file;
CString filter;
//“依米魔法文件(*.yimi)”即文件类型选择项,“*.yimi”即要求显示的类型文件
filter = "依米魔法文件(*.yimi)|*.yimi||";
//第一个参数为TRUE时为“打开文件”对话框;为FALSE时为“另存为”对话框。
CFileDialog dlg(FALSE, filter, NULL, OFN_HIDEREADONLY, filter);
if(dlg.DoModal()!=IDOK) return;
//要写CFile::modeCreate,若无该文件则创建;要写CFile::modeWrite,若已有该同名文件则重写覆盖
if(!file.Open(dlg.GetPathName(), CFile::modeCreate|CFi