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