GetOpenFileNameA 函式 (commdlg.h)
[從 Windows Vista 開始,通用項目對話框已取代 [開啟] 和 [另存新檔] 通用對話方塊。 我們建議您使用通用項目對話框 API,而不是來自通用對話框連結庫的這些對話方塊。
建立 [ 開啟 ] 對話框,讓使用者指定要開啟的磁碟驅動器、目錄和檔案名稱。
語法
BOOL GetOpenFileNameA(
[in, out] LPOPENFILENAMEA unnamedParam1
);
參數
[in, out] unnamedParam1
類型: LPOPENFILENAME
OPENFILENAME 結構的指標,其中包含用來初始化對話框的資訊。 當 GetOpenFileName 傳 回時,這個結構會包含使用者檔案選取的相關信息。
傳回值
類型: BOOL
如果使用者指定檔名,然後按下 [ 確定 ] 按鈕,則傳回值為非零。 OPENFILENAME 結構的 lpstrFile 成員所指向的緩衝區包含使用者指定的完整路徑和檔名。
如果使用者取消或關閉 [ 開啟 ] 對話框或發生錯誤,則傳回值為零。 若要取得擴充錯誤資訊,請呼叫 CommDlgExtendedError 函式,這可以傳回下列其中一個值。
備註
[檔案總管] 樣式的 [ 開啟 ] 對話框提供類似於 Windows 檔案總管的使用者介面功能。 您可以為檔案總管樣式的 [開啟] 對話方塊提供 OFNHookProc 勾點程式。 若要啟用攔截程式,請在OPENFILENAME結構的 Flags 成員中設定OFN_EXPLORER和OFN_ENABLEHOOK旗標,並在 lpfnHook 成員中指定攔截程式的位址。
Windows 會繼續支援舊樣式 的 [開啟 ] 對話框,讓想要維護與舊樣式使用者介面一致的使用者介面的應用程式。 若要顯示舊樣式的 [開啟 ] 對話框,請啟用 OFNHookProcOldStyle 勾點程式,並確定未設定 OFN_EXPLORER 旗標。
若要顯示可讓使用者選取目錄而非檔案的對話框,請呼叫 SHBrowseForFolder 函式。
請注意,選取多個檔案時,檔名的總字元限制取決於函式的版本。
- ANSI:32k 限制
- Unicode:沒有限制
範例
如需範例,請參閱 開啟檔案。
注意
commdlg.h 標頭會將 GetOpenFileName 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | commdlg.h (包含 Windows.h) |
程式庫 | Comdlg32.lib |
Dll | Comdlg32.dll |
API 集合 | ext-ms-win-shell-comdlg32-l1-1-1 (於 Windows 10 10.0.14393 版) |
另請參閱
概念
其他資源
參考