Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как запомнить путь к последнему открытому файлу, Структура BROWSEINFO 
:(
    Опции темы
SubZero
Дата 7.8.2008, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 3.6.2008

Репутация: нет
Всего: нет



Необходимо исправить баг - программа не запоминает пути к последнему открытому файлу, поэтому каждый раз по-новой приходится отыскивать его с самого верхнего уровня. Вот часть программы на VC++ 2003, используется структура BROWSEINFO

Код

void CMyListDlg::OnSelectDir()
{
    BROWSEINFO browseinfo;
    ITEMIDLIST    *itemidlist;
    
    browseinfo.hwndOwner = NULL;
    browseinfo.lpszTitle = "Select Directory with 8-bit records";
    browseinfo.pidlRoot = NULL;
    browseinfo.pszDisplayName = m_strWorkDir.GetBuffer(MAX_PATH);
    browseinfo.ulFlags =  BIF_NEWDIALOGSTYLE;
    browseinfo.lpfn = NULL;
    browseinfo.lParam = NULL;
    browseinfo.iImage = 0;

    itemidlist = SHBrowseForFolder(&browseinfo);
    m_strWorkDir.ReleaseBuffer();


    SHGetPathFromIDList(itemidlist,m_strWorkDir.GetBuffer(MAX_PATH));
    m_strWorkDir.ReleaseBuffer();

    CArtRegistry ArtReg("Software\\Montana\\List");
    ArtReg.SetString("WorkDir",m_strWorkDir);
    ArtReg.CloseCurrentKey();
    
    RefreshRecordList();

}
int CMyListDlg::RefreshRecordList()
{
    CFileFind filefind;
    CString strFileName;

    m_listRecords.DeleteAllItems();

    BOOL bRes = filefind.FindFile(m_strWorkDir + "\\*.*");
    int nItemCounter = 0;
    while (bRes)
    {
        bRes = filefind.FindNextFile();
        strFileName = filefind.GetFileName();
        if (IsItRecordFile(filefind.GetFilePath()))
        {
            m_listRecords.InsertItem(nItemCounter,strFileName);
            nItemCounter++;
        }
    }

    UpdateData(false);

    return 1;
}


Исходную программу писал не я, мне нужно ее лишь доработать - в частности исправить баг с открытием файлов. Заранее спасибо всем smile
PM MAIL   Вверх
Andrey44
Дата 7.8.2008, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



Код

SHGetPathFromIDList(itemidlist,m_strWorkDir.GetBuffer(MAX_PATH));//как вы обьясните эту строку?

Может надо хотя бы так
Код

TCHAR path[MAX_PATH];
SHGetPathFromIDList(itemidlist, path);
m_strWorkDir = path;



--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
SubZero
Дата 7.8.2008, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 3.6.2008

Репутация: нет
Всего: нет



Честно говоря объяснить мало что могу, ибо писал прогу не я. Опыта пока еще маловато, вот и плаваю..


Цитата(Andrey44 @  7.8.2008,  10:12 Найти цитируемый пост)

Может надо хотя бы так

Код

TCHAR path[MAX_PATH];
SHGetPathFromIDList(itemidlist, path);
m_strWorkDir = path;



К сожалению, это не помогает..(
PM MAIL   Вверх
SubZero
Дата 21.8.2008, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 3.6.2008

Репутация: нет
Всего: нет



Неужели никто не знает??
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1386 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.