VC文档"最近使用的文档"列表LoadStdProfileSettings
来源:互联网 发布:关于网络诈骗新闻 编辑:程序博客网 时间:2024/06/06 00:32
在文档/视图中,打开菜单旁边的”最近使用列表“可以列出最近使用的文档名称,这对于加快程序的处理文档速度。在VC2008SP1中的效果如下:
我们只要在应用程序类的InitInstance 函数中调用LoadStdProfileSettings()即可,函数原型如下:
UINT nMaxMRU = _AFX_MRU_COUNT
);
其中的参数为设置的最近使用列表文件个数。要使用这个的时候,要先写入注册表位置:
其中的xxxxxxxxxx为你的程序名称。然后就能在注册表下看到如下值:
最近文件列表可以让你很方便地打开你以前曾经打开过的文
件,那么,如何为自己的应用程序加入最近文件列表功能呢?
最简单的方法就是在你新建工程的时候选择包含最近文件列
表功能,也就是在 MFC AppWizard 的第 4 步的时候使 “How
many files would you like on your recent file list?” 的
值不为 0 即可。
如果你在新建工程的时候没有选择包含最近文件列表功能,
那么可以按照如下的方法为你的工程加入它:
1.在你的“文件”菜单中添加一个名称为“最近文件”的菜
单项,其 ID 为 ID_FILE_MRU_FILE1。
2.在你的工程的 App 类的 InitInstance 方法中将
LoadStdProfileSettings(0);
改成:
LoadStdProfileSettings();
即可。
这样,你的工程就有了最近文件列表功能。
事实上,以这种方法生成的最近文件列表项是保存在注册表
中 HKEY_CURRENT_USER/Sofrware/Loacl Appwizard-Generated
Applications 下以你的工程名为主键的 Recent File List 主
键中 File? 格式的字符串值中。LoadStdProfileSettings 的参
数值决定了保存在这里的最近文件的数目,其默认值(没有参数
时)为 4。 Loacl Appwizard-Generated Applications 主键是
Visual C++ 默认的,在工程的 App 类的 InitInstance 方法中
由 SetRegistryKey() 函数创建的,你可以将其改成你需要的名
称,例如:
SetRegistryKey(_T("skyice software"));
那么,如何处理从菜单中选择的最近文件列表中的文件呢?
由于在菜单中只有 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)
即可。
以后,所有对最近文件列表中文件的选择都由 CMainFrame
方法 OnFileMruFile1 响应,你可以在此函数中判断具体是选择
了哪个文件,进而做出相应的处理。
- VC文档"最近使用的文档"列表LoadStdProfileSettings
- VC文档"最近使用的文档"列表LoadStdProfileSettings
- 最近文件列表 及 LoadStdProfileSettings
- 最近文件列表 及 LoadStdProfileSettings
- 最近文件列表 及 LoadStdProfileSettings
- 清除“最近使用的文档”
- 去掉“最近使用的文档”
- Office 2013 您的管理员已关闭最近文档列表。
- 关闭我最近的文档
- 最近要做的文档
- word2013无法显示最近使用的文档的解决方法
- vc 文档的读写
- 1.清除最近使用过的文档记录
- 如何从开始菜单中去掉【最近使用的文档】项
- 打开我最近的文档的文件夹
- VC多文档应用中OpenGL的使用
- OPC 技术文档之 IOPCBrowseServerAddressSpace 的使用(vc)
- vc编写供vb使用的dll文档
- 创建一个自己的jar包
- Spark源码解析:DStream
- C#-Socket监听消息处理
- Ubuntu apt 下载缓慢时可以尝试下切换到国内的源
- 记录一下自己可能要看的书
- VC文档"最近使用的文档"列表LoadStdProfileSettings
- eclipse 更改包名只是记录一下一直忘
- editext 两次获取焦点 , 当设 etComment.setFocusable(false);后 还学要点击两次获取焦点
- 构建微服务:Spring Boot 从听说到精通 (一)
- std::thread库的condition_variable进行线程唤醒
- bootstrap模态框页面抖动和暗黑锁定处理
- Linux系统下普遍常用的命令(会陆续更新...)
- python的graphics库的简单用法
- HDU 3037(隔板法+组合数+Lucas)