CFileDialog使用注意事項

2021-07-08 18:50:52 字數 663 閱讀 5965

使用mfc程式設計的時候會使用cfiledialog對資料夾或者檔案路徑的獲取.但是在使用時候注意如下這個函式

cstring getfolderpath() const; // return full path

看似會返回選取的資料夾路徑回來.其實,不全對.

經本人測試,如果該函式在win10上面執行,能夠正確返回資料夾路徑,但是在xp系統,則會直接崩潰.

也許有人說要增加"ofn_explorer"這個屬性,貌似微軟的msdn是這麼說的.經測試,就算增加了這個屬性也出現異常(在xp下測試)

所以,想要獲取資料夾路徑的朋友,得自己多寫點**,可以先通過getpathname()獲取選擇的檔案全路徑,然後解析出資料夾路徑.

cfiledialog cfdlg(false, null, null,

ofn_hidereadonly | ofn_overwriteprompt,

text("配置檔案 (*.cfg)|*.cfg|all files (*.*)|*.*||"),

this);

if (cfdlg.domodal() == idok)

類似如上**,可以返回檔案的路徑.

來自:

如何使用CFileDialog

cfiledialog的語法 cfiledialog bool bopenfiledialog,lpctstr lpszdefext null,lpctstr lpszfilename null,dword dwflags ofn hidereadonly ofn overwriteprompt,l...

如何使用CFileDialog

cfiledialog建構函式如下 cfiledialog bool bopenfiledialog,lpctstr lpszdefext null,lpctstr lpszfilename null,dworddwflags ofn hidereadonly ofn overwriteprompt...

CFileDialog使用簡介

cfiledialog bool bopenfiledialog,true則顯示開啟檔案對話方塊,false則顯示儲存檔案對話方塊。lpctstr lpszdefext null,指定預設的副檔名。lpctstr lpszfilename null,指定預設的檔名。dword dwflags ofn...