通用對話方塊程式庫

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

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

注意

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

本節內容

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

函式

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

介面

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

訊息

名稱 描述
CDM _ GETFILEPATH 在 Explorer 樣式的 [ 開啟 ] 或 [ 另存 新檔] 對話方塊中,抓取所選取檔案的路徑和檔案名。 您必須使用 OFN EXPLORER 旗標建立對話方塊 _ ; 否則,訊息會失敗。
CDM _ GETFOLDERIDLIST 抓取對應于目前開啟之 [Explorer 樣式 開啟 ] 或 [ 另存 新檔] 對話方塊之資料夾的專案識別碼清單位址。 您必須使用 OFN _ EXPLORER 旗標建立對話方塊; 否則,訊息會失敗。
CDM _ GETFOLDERPATH 抓取 Explorer 樣式 [ 開啟 ] 或 [ 另存 新檔] 對話方塊中目前開啟之資料夾或目錄的路徑。 您必須使用 OFN _ EXPLORER 旗標建立對話方塊; 否則,訊息會失敗。
CDM _ GETSPEC 抓取檔案名 (不包含在 Explorer 樣式的 [ 開啟 ] 或 [ 另存 新檔] 對話方塊中目前選取之檔案的路徑) 。 您必須使用 OFN _ EXPLORER 旗標建立對話方塊; 否則,訊息會失敗。
CDM _ HIDECONTROL 在 Explorer 樣式的 [ 開啟 ] 或 [ 另存 新檔] 對話方塊中隱藏指定的控制項。 您必須使用 OFN _ EXPLORER 旗標建立對話方塊; 否則,訊息會失敗。
CDM _ SETCONTROLTEXT 在 Explorer 樣式的 [ 開啟 ] 或 [ 另存 新檔] 對話方塊中,設定指定之控制項的文字。 您必須使用 OFN _ EXPLORER 旗標建立對話方塊; 否則,訊息會失敗。
CDM _ SETDEFEXT 設定 Explorer 樣式 [ 開啟 ] 或 [ 另存 新檔] 對話方塊的預設副檔名。 您必須使用 OFN _ EXPLORER 旗標建立對話方塊; 否則,訊息會失敗。
SETRGBSTRING [ 色彩 ] 對話方塊( 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 _ 說明 當使用者按一下 [說明 ] 按鈕時,由 Explorer 樣式的 [開啟] 或 [另存 新檔] 對話方塊傳送。
CDN _ INCLUDEITEM 由 [ 開啟 ] 或 [ 另存 新檔] 對話方塊傳送,以判斷對話方塊是否應在 shell 資料夾的專案清單中顯示專案。 當使用者開啟資料夾時,對話方塊會為資料夾中的每個專案傳送 CDN _ INCLUDEITEM 通知。 只有在建立對話方塊時設定了 OFN _ ENABLEINCLUDENOTIFY 旗標,對話方塊才會傳送此通知。
CDN _ INITDONE 當系統完成對話方塊中的控制項排列時,由 Explorer 樣式的 [ 開啟 ] 或 [ 另存 新檔] 對話方塊傳送。 系統會移動標準控制項,以騰出空間給子對話方塊的控制項。
CDN _ SELCHANGE 當清單方塊中顯示目前開啟的資料夾或目錄的內容時,由 Explorer 樣式的 [ 開啟 ] 或 [ 另存 新檔] 對話方塊所傳送。
CDN _ SHAREVIOLATION 當使用者按一下 [確定] 按鈕時,由 Explorer 樣式的 [開啟] 或 [另存 新檔] 對話方塊傳送,表示選取的檔案發生網路共用違規。
CDN _ TYPECHANGE 當使用者從 [檔案類型] 下拉式方塊中選取新的檔案類型時,由 Explorer 樣式的 [ 開啟 ] 或 [ 另存 新檔] 對話方塊傳送。
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 包含 FindTextreplacer.replacetext 函數用來初始化 [ 尋找取代 ] 對話方塊的資訊。 FINDMSGSTRING註冊的訊息會使用此結構,將使用者的搜尋或取代輸入傳遞至 [尋找取代] 對話方塊的 [主控視窗] 視窗。
OFNOTIFY 針對 [開啟] 或 [另存 新檔] 對話方塊,包含傳送至 OFNHookProc攔截程式之 WM _ 通知訊息的相關資訊。 WM _ 通知 訊息的 LParam 參數是指向 OFNOTIFY結構的指標。
OFNOTIFYEX 包含 CDN _ INCLUDEITEM 通知訊息的相關資訊。
OPENFILENAME 包含 GetOpenFileNameGetSaveFileName 函數用來初始化 [ 開啟 ] 或 [ 另存 新檔] 對話方塊的資訊。 使用者關閉對話方塊之後,系統會傳回使用者在此結構中選取專案的相關資訊。
OPENFILENAME _ NT4 _ WIN32 _ WINNT 設定為0x0400 的 OPENFILENAME 相同。
PAGESETUPDLG 包含 PageSetupDlg 函數用來初始化 [版面 設定 ] 對話方塊的資訊。 使用者關閉對話方塊之後,系統會傳回這個結構中使用者定義頁面參數的相關資訊。
PRINTDLG 包含 PrintDlg 函數用來初始化 [列印] 對話方塊的資訊。 在使用者關閉對話方塊之後,系統會使用此結構來傳回使用者選取專案的相關資訊。
PRINTDLGEX 包含 PrintDlgEx 函數用來初始化 列印屬性工作表的資訊。 在使用者關閉屬性工作表之後,系統會使用此結構來傳回使用者選取專案的相關資訊。
PRINTPAGERANGE 指定列印工作中的頁面範圍。 列印工作可以有一個以上的頁面範圍。 呼叫 PRINTDLGEX函式時,會在 PRINTDLGEX結構中提供這項資訊。