我正在尝试使用来自 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 工作。