Member 13495762 Ответов: 1

Как получить название проекта из списка MRU mfc?


Привет

Я хотел бы получить названия проектов из списка MRU. Я могу получить путь к последнему проекту, используя этот метод

CString CClipProjectPlanningApp::GetRecentFile(int index) 
{
	return (*m_pRecentFileList)[index];
}


но я хотел бы иметь только названия проектов.

Что я уже пробовал:

Я знаю об этом методе
CRecentFileList::GetDisplayName

но точно не знаю, как им пользоваться

Я имею в виду, что не знаю, как получить эти 2 параметра
LPCTSTR lpszCurDir,
  int nCurDir,
virtual BOOL GetDisplayName( 
   CString& strName, 
   int nIndex, 
   LPCTSTR lpszCurDir, 
   int nCurDir, 
   BOOL bAtLeastName = TRUE 
) const;

Richard MacCutchan

Используйте некоторые методы CString для извлечения имени проекта.

1 Ответов

Рейтинг:
10

Jochen Arndt

Смотрите документацию: Класс CRecentFileList[^].

То CRecentFileList класс просто управляет именами файлов и хранилищем в реестре. GetDisplayName() это вспомогательная функция для создания имен, которые будут отображаться в меню.

Если имя проекта совпадает с простым именем файла, извлеките его из полного пути:

CString strName(strPath);
int nFileNamePos = strName.ReverseFind(_T('\\'));
if (nFileNamePos >= 0)
{
    strName = strName.Mid(nFileNamePos + 1);
    int nExtPos = strName.ReverseFind(_T('.'));
    if (nExtPos >= 0)
        strName = strName.Left(nExtPos);
}
Вы также можете использовать другие функции, такие как _splitpath и PathFindFileName.

Если имя проекта хранится в документах вашей заявки, вы должны прочитать его из каждого файла списка.