通用對話方塊程式庫

通用對話方塊程式庫包含一組對話方塊,用於執行一般應用程式工作,例如開啟檔案、選擇色彩值,以及列印檔案。 通用對話方塊可讓您實作應用程式使用者介面的一致方法。 這可減少使用者針對您的應用程式學慣用戶介面行為所花費的工作量。

本節描述包含 [開啟 ] 和 [ 另存新 檔] 對話方塊的常見對話方塊; [尋找取代 編輯] 對話方塊; [列印]、[ 列印設定]、[ 列印屬性工作表] 和 [ 頁面設定 列印] 對話方塊;和 [ 色彩 ] 和 [ 字型] 對話方塊。

注意

從 Windows Vista 開始,通用專案對話方塊已取代 [開啟 ] 和 [另存 ] 通用對話方塊。 建議您使用通用專案對話方塊 API,而不是來自通用對話方塊程式庫的這些對話方塊。

本節內容

名稱 描述
一般對話方塊類型 討論不同的對話方塊。
通用對話方塊初始化旗標 討論如何使用旗標來修改通用對話方塊的行為和外觀。
自訂通用對話方塊 討論如何使用一般對話方塊。
使用一般對話方塊 涵蓋叫用一般對話方塊的工作。
一般對話方塊參考 包含 API 參考。

函式

名稱 描述
CCHookProc 接收用於 [色彩 ] 對話方塊之預設對話方塊程式的訊息或通知。 這是與 ChooseColor 函式搭配使用的應用程式定義或程式庫定義回呼函式。
CFHookProc 接收訊息或通知,用於 [ 字型 ] 對話方塊的預設對話方塊程式。 這是與 ChooseFont 函式搭配使用的應用程式定義或程式庫定義的回呼程式。
ChooseColor 建立 [ 色彩 ] 對話方塊,讓使用者能夠選取色彩。
ChooseFont 建立 [ 字型 ] 對話方塊,讓使用者選擇邏輯字型的屬性。 這些屬性包括字型系列和相關聯的字型樣式、點大小、效果 (底線、刪除線和文字色彩) ,以及腳本 (或字元集) 。
CommDlgExtendedError 傳回常見的對話方塊錯誤碼。 此程式碼表示在執行其中一個通用對話方塊函式期間,要發生的最近錯誤。
FindText 建立系統定義的無模式 [ 尋找 ] 對話方塊,讓使用者指定要搜尋的字串,以及在檔中搜尋文字時要使用的選項。
FRHookProc 接收訊息或通知,用於 [尋找取代 ] 對話方塊的預設對話方塊程式。 這是與 FindTextReplaceText 函式搭配使用的應用程式定義或程式庫定義回呼函式。
GetFileTitle 擷取指定檔案的名稱。
GetOpenFileName 建立 [ 開啟 ] 對話方塊,讓使用者指定要開啟的磁片磁碟機、目錄和檔案名稱或一組檔案。
GetSaveFileName 建立 [ 儲存 ] 對話方塊,讓使用者指定要儲存的磁片磁碟機、目錄和檔案名。
OFNHookProc 接收從對話方塊傳送的通知訊息。 函式也會接收您藉由指定子對話方塊範本所定義之任何其他控制項的訊息。 這是應用程式定義的或程式庫定義的回呼函式,可與 Explorer 樣式的 [開啟 ] 和 [ 另存新 檔] 對話方塊搭配使用。
OFNHookProcOldStyle 接收用於對話方塊程式的訊息或通知。 這是應用程式定義或程式庫定義的回呼函式,可與 [開啟 ] 和 [ 另存新 檔] 對話方塊搭配使用。
PagePaintHook 接收訊息,可讓您在 [ 版面設定 ] 對話方塊中自訂範例頁面的繪圖。 這是搭配 PageSetupDlg 函式使用的應用程式定義或程式庫定義回呼函式。
PageSetupDlg 建立 [ 頁面設定 ] 對話方塊,讓使用者能夠指定列印頁面的屬性。 這些屬性包括紙張大小和來源、頁面方向 (直向或橫向) ,以及頁面邊界的寬度。
PageSetupHook 接收用於 [頁面設定 ] 對話方塊之預設對話方塊程式的訊息或通知。 這是搭配PageSetupDlg函式使用的應用程式定義或程式庫定義回呼函式。
PrintDlg 顯示列印對話方塊。 [ 列印 ] 對話方塊可讓使用者指定特定列印工作的屬性。
PrintDlgEx 顯示 Print 屬性工作表,讓使用者能夠指定特定列印工作的屬性。Print屬性工作表具有 [ 一般 ] 頁面,其中包含類似 [ 列印 ] 對話方塊的控制項。 屬性工作表也可以有額外的應用程式特定和驅動程式特定的屬性頁,以及 [ 一般] 頁面。
PrintHookProc 接收訊息或通知,用於 [列印 ] 對話方塊的預設對話方塊程式。 這是與 PrintDlg 函式搭配使用的應用程式定義或程式庫定義回呼函式。
ReplaceText 建立系統定義的無強制回應對話方塊,讓使用者指定要搜尋的字串和取代字串,以及控制尋找和取代作業的選項。
SetupHookProc 搭配 PrintDlg 函式使用的應用程式定義或程式庫定義回呼函式。 攔截程式會接收訊息或通知,這些訊息或通知適用于 [列印安裝 ] 對話方塊的預設對話方塊程式。

介面

名稱 描述
IPrintDialogCallback 提供方法,可讓應用程式在顯示Print 屬性工作表時從PrintDlgEx函式接收通知和訊息。
IPrintDialogServices 提供方法,讓應用程式能夠使用 PrintDlgEx 函 式來擷取目前選取印表機的相關資訊。

訊息

名稱 描述
CDM_GETFILEPATH 在 [總管] 樣式的 [ 開啟 ] 或 [ 另存 新檔] 對話方塊中,擷取所選檔案的路徑和檔案名。 對話方塊必須已使用 OFN_EXPLORER 旗標建立;否則,訊息會失敗。
CDM_GETFOLDERIDLIST 擷取對應至檔案總管樣式 開啟 或另 新檔對話方塊目前已開啟之資料夾的專案識別碼清單位址。 對話方塊必須已使用 OFN_EXPLORER 旗標建立;否則,訊息會失敗。
CDM_GETFOLDERPATH 擷取 [檔案總管] 樣式的 [ 開啟 ] 或 [ 另存新 檔] 對話方塊之目前開啟資料夾或目錄的路徑。 對話方塊必須已使用 OFN_EXPLORER 旗標建立;否則,訊息會失敗。
CDM_GETSPEC 擷取檔案名 (不包含檔案總管樣式 [ 開啟 ] 或 [ 另存 新檔] 對話方塊中目前選取檔案的路徑) 。 對話方塊必須已使用 OFN_EXPLORER 旗標建立;否則,訊息會失敗。
CDM_HIDECONTROL 在 [總管] 樣式的 [ 開啟 ] 或 [ 另存 新檔] 對話方塊中隱藏指定的控制項。 對話方塊必須已使用 OFN_EXPLORER 旗標建立;否則,訊息會失敗。
CDM_SETCONTROLTEXT 在 [總管] 樣式的 [ 開啟 ] 或 [ 另存新 檔] 對話方塊中,設定指定控制項的文字。 對話方塊必須已使用 OFN_EXPLORER 旗標建立;否則,訊息會失敗。
CDM_SETDEFEXT 設定 [總管] 樣式的 [ 開啟 ] 或 [ 另存 新檔] 對話方塊的預設副檔名。 對話方塊必須已使用 OFN_EXPLORER 旗標建立;否則,訊息會失敗。
SETRGBSTRING Color 對話方塊CCHookProc的攔截程式可以將 SETRGBSTRING 已註冊的訊息傳送至對話方塊,以設定目前的色彩選取範圍。
WM_CHOOSEFONT_GETLOGFONT 應用程式會將 WM_CHOOSEFONT_GETLOGFONT 訊息傳送至 [字型 ] 對話方塊,以擷取使用者目前字型選取範圍的相關資訊。
WM_CHOOSEFONT_SETFLAGS 應用程式會將 WM_CHOOSEFONT_SETFLAGS 訊息傳送至 [字型 ] 對話方塊,以設定對話方塊的顯示選項。
WM_CHOOSEFONT_SETLOGFONT 應用程式會將 WM_CHOOSEFONT_SETLOGFONT 訊息傳送至 [ 字型 ] 對話方塊,以設定目前的邏輯字型資訊。

通知

名稱 描述
CDN_FILEOK 當使用者指定檔案名並按一下 [確定] 按鈕時,由 Explorer 樣式的[開啟] 或[另存新檔] 對話方塊傳送。
CDN_FOLDERCHANGE 開啟新資料夾時,由 Explorer 樣式的 [ 開啟 ] 或 [ 另存新 檔] 對話方塊傳送。
CDN_HELP 當使用者按一下 [說明] 按鈕時,由 Explorer 樣式的[開啟] 或 [另存新檔] 對話方塊傳送。
CDN_INCLUDEITEM [開啟 ] 或 [ 存新檔] 對話方塊傳送,以判斷對話方塊是否應該在殼層資料夾的專案清單中顯示專案。 當使用者開啟資料夾時,對話方塊會傳送資料夾中每個專案的 CDN_INCLUDEITEM 通知。 只有在建立對話方塊時已設定 OFN_ENABLEINCLUDENOTIFY 旗標時,對話方塊才會傳送此通知。
CDN_INITDONE 當系統完成排列對話方塊中的控制項時,由總管樣式 的 [開啟 ] 或 [ 存新檔] 對話方塊傳送。 系統會移動標準控制項,讓子對話方塊的控制項有空間。
CDN_SELCHANGE 當選取範圍在顯示目前開啟的資料夾或目錄內容的清單方塊中變更時,Explorer 樣式的 [開啟 ] 或 [ 存新檔] 對話方塊傳送。
CDN_SHAREVIOLATION 當使用者按一下 [確定] 按鈕,且選取的檔案發生網路共用違規時,Explorer 樣式的[開啟] 或[另存新檔] 對話方塊傳送。
CDN_TYPECHANGE 當使用者從檔案類型下拉式方塊中選取新的檔案類型時,由檔案總管樣式的 [開啟] 或[另存新檔] 對話方塊傳送。
COLOROKSTRING [色彩] 對話方塊會在使用者選取色彩並按一下 [確定] 按鈕時,將COLOROKSTRING已註冊的訊息傳送至您的勾點程式CCHookProc。 攔截程式可以接受色彩並允許對話方塊關閉,或拒絕色彩,並強制對話方塊保持開啟狀態。
FILEOKSTRING [開啟] 或 [存新檔] 對話方塊會在使用者指定檔案名並按一下 [確定] 按鈕時,將FILEOKSTRING已註冊的訊息傳送至您的攔截程式OFNHookProc。 攔截程式可以接受檔案名,並允許對話方塊關閉,或拒絕檔案名,並強制對話方塊保持開啟狀態。
FINDMSGSTRING [尋找] 或 [取代] 對話方塊會在使用者按一下 [尋找下一步]、[取代] 或 [全部取代] 按鈕,或關閉對話方塊時,將FINDMSGSTRING已註冊的訊息傳送至其擁有者視窗的視窗程式。
HELPMSGSTRING 常見的對話方塊會在使用者按一下 [說明] 按鈕時,將HELPMSGSTRING已註冊的訊息傳送至其擁有者視窗的視窗程式。
LBSELCHSTRING [開啟] 或 [另存新檔] 對話方塊會在對話方塊的任何清單方塊或下拉式方塊中變更選取專案時,將LBSELCHSTRING已註冊的訊息傳送至您的攔截程式。
SHAREVISTRING [開啟] 或 [存新檔] 對話方塊會在使用者按一下 [確定] 按鈕時,將SHAREVISTRING已註冊的訊息傳送至您的攔截程式OFNHookProc
WM_PSD_ENVSTAMPRECT 通知 頁面設定 對話方塊 PagePaintHook的攔截程式,對話方塊即將繪製範例頁面的信封戳矩形。
WM_PSD_FULLPAGERECT 在 [頁面設定] 對話方塊中,通知PagePaintHook攔截程式範例頁面矩形的座標。 對話方塊會在即將繪製範例頁面的內容時傳送此訊息。
WM_PSD_GREEKTEXTRECT 通知 頁面設定 對話方塊 PagePaintHook的攔截程式,對話方塊即將在範例頁面的邊界矩形內繪製希臘文文字。
WM_PSD_MARGINRECT 通知 頁面設定 對話方塊 PagePaintHook的攔截程式,對話方塊即將繪製範例頁面的邊界矩形。
WM_PSD_MINMARGINRECT 通知 PagePaintHook 攔截程式範例頁面中邊界矩形的座標。 [ 頁面設定 ] 對話方塊會在即將繪製範例頁面的內容時傳送此訊息。
WM_PSD_PAGESETUPDLG 通知 PagePaintHook 攔截程式, 頁面設定 對話方塊即將繪製範例頁面的內容。 攔截程式可以使用此訊息來執行與繪製範例頁面內容相關的初始化工作。
WM_PSD_YAFULLPAGERECT 通知 頁面設定 對話方塊 PagePaintHook的攔截程式,對話方塊即將繪製信封範例頁面的傳回位址部分。

結構

名稱 描述
CHOOSECOLOR 包含 ChooseColor 函式用來初始化 [色彩 ] 對話方塊的資訊。 使用者關閉對話方塊之後,系統會傳回此結構中使用者選取專案的相關資訊。
CHOOSEFONT 包含 ChooseFont 函式用來初始化 [字型 ] 對話方塊的資訊。 使用者關閉對話方塊之後,系統會傳回此結構中使用者選取專案的相關資訊。
DEVNAMES 包含字串,識別印表機的驅動程式、裝置和輸出埠名稱。 PrintDlgExPrintDlg函式會使用這些字串來初始化系統定義的列印屬性工作表列印對話方塊。 當使用者關閉屬性工作表或對話方塊時,會在此結構中傳回所選取印表機的相關資訊。
FINDREPLACE 包含 FindTextReplaceText 函式用來初始化 [尋找取代 ] 對話方塊的資訊。 FINDMSGSTRING已註冊的訊息會使用此結構,將使用者的搜尋或取代輸入傳遞至[尋找取代] 對話方塊的擁有者視窗。
OFNOTIFY Ccontains 傳送至 [開啟] 或 [另存新檔] 對話方塊之 OFNHookProc攔截程式之WM_NOTIFY訊息的相關資訊。 WM_NOTIFY訊息的lParam參數是OFNOTIFY結構的指標。
OFNOTIFYEX 包含 CDN_INCLUDEITEM 通知訊息的相關資訊。
OPENFILENAME 包含 GetOpenFileNameGetSaveFileName 函式用來初始化 [開啟 ] 或 [ 另存新 檔] 對話方塊的資訊。 使用者關閉對話方塊之後,系統會傳回此結構中使用者選取專案的相關資訊。
OPENFILENAME_NT4 OPENFILENAME 相同,_WIN32_WINNT設定為 0x0400。
PAGESETUPDLG 包含 PageSetupDlg 函式用來初始化 [頁面設定 ] 對話方塊的資訊。 使用者關閉對話方塊之後,系統會傳回這個結構中使用者定義頁面參數的相關資訊。
PRINTDLG 包含 PrintDlg 函式用來初始化 列印對話方塊的資訊。 使用者關閉對話方塊之後,系統會使用此結構傳回使用者選取專案的相關資訊。
PRINTDLGEX 包含 PrintDlgEx 函式用來初始化 Print 屬性工作表的資訊。 使用者關閉屬性工作表之後,系統會使用此結構傳回使用者選取專案的相關資訊。
PRINTPAGERANGE 指定列印工作中的頁面範圍。 列印工作可以有多個頁面範圍。 呼叫 PrintDlgEx 函式時,這項資訊會在 PRINTDLGEX 結構中提供。