zoukankan      html  css  js  c++  java
  • 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 响应,你可以在此函数中判断具体是选择了哪个文件,进而做出相应的处理。

  • 相关阅读:
    你认为做好测试计划工作的关键是什么?
    App压力测试MonkeyRunner整理
    小米2S手机
    APP耗电量专项测试整理
    App功能测试
    渗透测试_利用Burp爆破用户名与密码
    docker介绍
    redis-cluster
    Redis配置文件详情
    Redis-Sentinel哨兵
  • 原文地址:https://www.cnblogs.com/hgy413/p/3693487.html
Copyright © 2011-2022 走看看