最近文件列表可以让你很方便地打开你以前曾经打开过的文件,那么,如何为自己的应用程序加入最近文件列表功能呢?
1 方法
1.1方法1:
在你新建工程的时候选择包含最近文件列表功能,也就是在 MFC AppWizard 的第 4 步的时候使 “How many files would you like on your recent file list?” 的
值不为 0 即可。
1.2方法2:
1.2.1 在你的“文件”菜单中添加一个名称为“Recent Project/File”的菜单项,其 ID 为 ID_FILE_MRU_FILE1。
1.2.2在你的工程的 App 类的 InitInstance 方法中将 LoadStdProfileSettings(0);
改成: LoadStdProfileSettings(MIX_FILE_NUMBER)即可。
2 存储最近文件列表项
CWinApp::SetRegistryKey
void SetRegistryKey( LPCTSTR lpszRegistryKey );
void SetRegistryKey( UINT nIDRegistryKey );
参数
lpszRegistryKey
字符串指针,包含了键的名字。
nIDRegistryKey
注册表中键的ID/索引。
注释
这个函数将应用程序的设置保存在注册表而不是INI文件中。这个函数设置m_pszRegistry Key,它被CWinApp的成员函数GetProfileInt,GetProfileString,WriteProfileInt和WriteProfileString使用。如果调用了这个函数,最近使用(MRU)的文件也被保存到注册表中。通常注册表的键为公司的名字。它保存在如下形式的键中:HKEY_CURRENT_USER\Software\<公司名>\<应用程序名>\<section name>\<value name>.
例如:SetRegistryKey(_T("XXX company "));//程序名AA
最近文件列表将被保存在:
HKEY_CURRENT_USER\Software\< XXX company >\<AA >\<Recent File List >\<value name>.
3 处理菜单中选择的最近文件列表
由于在菜单中只有 ID_FILE_MRU_FILE1 这一个菜单项,其余的菜单项都是由 LoadStdProfileSettings()动态的加上的,因此,用一般的方法难以实现对菜单项的响应。此时,可以采用如下的方法:
1.在 CMainFrame 类中加入对菜单项 ID_FILE_MRU_FILE1的
响应。
2.在 MainFrm.cpp 中将
ON_COMMAND(ID_FILE_MRU_FILE1,OnFileMruFile1)
改成
ON_COMMAND_RANGE(ID_FILE_MRU_FILE1,ID_FILE_MRU_FILE4,
OnFileMruFile1)
或者
ON_COMMAND_RANGE(ID_FILE_MRU_FILE1, ID_FILE_MRU_FILE1 + MAX_RECENT_PRJ_FILES, OnOpenRecentFile)
ON_UPDATE_COMMAND_UI_RANGE(ID_FILE_MRU_FILE1,ID_FILE_MRU_FILE1 + MAX_RECENT_PRJ_FILES, OnUpdateOpenRecentFile)
void CXXXApp:: OnOpenRecentFile (UINT nID)
{
//add codes here
}
void CXXXApp::OnUpdateOpenRecentFile(CCmdUI *pCmdUI)
{
CWinApp::OnUpdateRecentFileMenu(pCmdUI);
//pCmdUI->Enable();
//add codes here
}
分享到:
相关推荐
用MFC实现局域网内点对点的大文件传输,内附txt文本文件对代码结构的详细讲述,对需要实现文件传输是个学习案例。
mfc实现bmp文件读取mfc实现bmp文件读取mfc实现bmp文件读取mfc实现bmp文件读取mfc实现bmp文件读取
MFC的dialogue变成,实现读取文件中的数字,文件有字符串和数字组成,并求和
网上找了些例子,然后自己整合做了个MFC实现文件资源管理器的DEMO。包括地址栏,左文件树,右文件视图。可以作为大家以后的一个参考例子。
MFC实现对文件内容的DES加解密
mfc程序,实现对txt文件的读写 mfc程序,实现对txt文件的读写 mfc程序,实现对txt文件的读写 mfc程序,实现对txt文件的读写
本历程可实现ini文件存储数据,对程序可调参数值得记录,本人用VS2012
VC++基于mfc 实现对话框打开读取txt文件 VC++基于mfc 实现对话框打开读取txt文件
c++编写的 MFC socket 文件传输 编译通过 可直接运行
用MFC实现局域网内点对点的大文件传输,是一个文件源程序的列表
简单的MFC实现文件访问示例,其中也用到了窗口搜索和消息发送。
MFC实现shapefile文件读取,绘制,缩放,平移等功能
程序基于VC6.0利用MFC和OpenGL库实现了3d模型中标准格式OBJ文件的读取,是一个很好的二次开发源代码
用MFC实现在编辑框中打开TXT文件,用于初学者。
用MFC实现文件传输,文件不分类型,传输以二进制传输。
VC MFC实现文件下载,将文件下载到内存里面
用c++ 和mfc语言实现的文件上传服务器,有友好的界面,是一个学习socket和mfc的不错的代码。
MFC程序工程文件,实现带有界面的操作软件,对文本文件的关键字进行搜索提取
MFC实现单词模糊查询
VS2010 用MFC实现TCP文件传输