LoadStdProfileSettings — 載入MRU–方便地開啟你以前曾經開啟過的檔案

來源:互聯網
上載者:User
 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 響應,你可以在此函數中判斷具體是選擇了哪個檔案,進而做出相應的處理。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.