• LoadStdProfileSettings 加载MRU


    LoadStdProfileSettings -- 加载MRU  

    2010-01-17 14:49:40|  分类: C++ Relation |  标签: |字号 订阅

        This method is called from within the InitInstance method to enable and load the list of most recently used (MRU) files and last preview state. If nMaxMRU is zero, no MRU list will be maintained.

    最近文件列表可以让你很方便地打开你以前曾经打开过的文件,那么,如何为自己的应用程序加入最近文件列表功能呢?最简单的方法就是在你新建工程的时候选择包含最近文件列表功能,也就是在 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 响应,你可以在此函数中判断具体是选择了哪个文件,进而做出相应的处理。

  • 相关阅读:
    集合类型操作符
    ffmpeg 转换VC工具 V1.1.2 支持android.mk工程文件生成
    avplayer VS2008编译
    cocosBuiler使用简介&心得
    ffmpeg 转换VC工具 V1.1.2 支持android.mk工程文件生成
    ffmpeg优化
    avplayer VS2008编译
    VS2008+WDK 文件过滤驱动程序 开发环境配置
    cocosBuiler使用简介&心得
    ffmpeg优化
  • 原文地址:https://www.cnblogs.com/hgy413/p/3693487.html
Copyright © 2020-2023  润新知