2013-08-13 3 views
0

Я пытаюсь использовать Fl_Native_File_Chooser из fltk 1.3, и класс отлично работает, за исключением установки стартового каталога.Кто-нибудь использовал Fl_Native_File_Chooser и установил каталог запуска?

const char *start_dir = "C:\\Program Files (x86)"; 
    Fl_Native_File_Chooser native(Fl_Native_File_Chooser::BROWSE_DIRECTORY); 
    native.directory(start_dir); 
    native.title("Select a directory"); 

    native.type(Fl_Native_File_Chooser::BROWSE_DIRECTORY); 

    std::string directoryName; 
    switch (native.show()) 
    { 
    case -1: break; //fprintf(stderr, "ERROR: %s\n", native.errmsg()); break; // ERROR 
    case 1: break; //fprintf(stderr, "*** CANCEL\n"); fl_beep(); break; // CANCEL 
    default:       // PICKED FILE 
     if (native.filename()) directoryName = native.filename(); 
     break; 
    } 
    std::cout << directoryName << std::endl; 

Я изучил код. В Fl_Native_File_Chooser_WIN32.cxx и int Fl_Native_File_Chooser :: showdir() Я не понимаю, почему _binf.pidlRoot не установлен. Я посмотрел Fl_Native_File_Chooser :: showfile(), но способ, которым настроен диалог, отличается.

Так кто-нибудь успешно установил каталог запуска для Fl_Native_File_Chooser, когда вы просматриваете каталог?

Странная вещь для меня в том, что работает обычный Fl_File_Chooser.

ответ

0

Ваш код работает для меня, хотя я не уверен, что вы подразумеваете под «_binf.pidlRoot». Что вы ожидаете от кода, и что он на самом деле делает? Есть ли какой-либо код до или после отправленной вами части? Это может повлиять на вещи ...

+0

Какой компилятор вы используете? Я использую VS2008 Professional. – DannyK