• MFC函数—CWinApp::LoadStdProfileSettings


    从 InitInstance 成员函数内调用该函数,启用和加载最近使用的(MRU)文件和最后浏览状态的列表。

    void LoadStdProfileSettings(
       UINT nMaxMRU = _AFX_MRU_COUNT
    );


    参数
    nMaxMRU:要跟踪的最近使用的文件个数。如果 nMaxMRU 为0,MRU 列表不维护。

    头文件

    头文件位置:afxwin.h


    方法

    如果你在新建工程的时候没有选择包含最近文件列表功能,那么可以按照如下的方法为你的工程加入它:
    1.在你的“文件”菜单中添加一个名称为“最近文件”的菜单项,其 ID 为 ID_FILE_MRU_FILE1。 
    2.在你的工程的 App 类的 InitInstance 方法中将 
            LoadStdProfileSettings(0); 
    改成: 
            LoadStdProfileSettings(); 
    即可。这样,你的工程就有了最近文件列表功能。

    事实上,以这种方法生成的最近文件列表项是保存在注册表中 HKEY_CURRENT_USERSofrwareLoacl 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 响应,你可以在此函数中判断具体是选择了哪个文件,进而做出相应的处理。如此就可以在程序中实现最近文件列表功能了。

  • 相关阅读:
    UML 2.5版本与UML分类概述
    Android 使用MySQL直接访问数据库
    带你体验Android自定义圆形刻度罗盘 仪表盘 实现指针动态改变
    升级到Android Studio3.x遇到的问题及解决方案
    [摩斯密码表]摩斯密码对照表
    【Eclipse】eclipse中格式化代码配置方法
    Java中AWT、Swing与SWT三大GUI技术的原理与效率差异
    Mysql 5.5 replication 多数据库主从备份Master-Slave配置总结
    期望-pku-oj-1055:Tree
    MFC——从实现角度分析微云界面
  • 原文地址:https://www.cnblogs.com/rosesmall/p/14785057.html
Copyright © 2020-2023  润新知