通用對話框連結庫
通用對話框連結庫包含一組對話框來執行一般應用程式工作,例如開啟檔案、選擇色彩值,以及列印檔。 常見的對話框可讓您實作應用程式用戶介面的一致方法。 這可減少使用者在學習應用程式使用者介面行為時所花費的工作量。
本節描述包括 [開啟和另存新檔] 對話框、[尋找及取代編輯] 對話框、[列印]、[列印設定]、[列印屬性表] 和 [頁面設定列印] 對話框,以及 [色彩] 和 [字型] 對話框的通用對話框。
注意
從 Windows Vista 開始,通用項目對話框已取代 [開啟] 和 [另存新檔] 對話方塊。 建議您使用 Common Item Dialog API,而不是 Common Dialog Box Library 中的這些對話方塊。
本節內容
名稱 | 描述 |
---|---|
一般對話框類型 | 討論不同的對話框。 |
通用對話框初始化旗標 | 討論如何使用旗標來修改通用對話框的行為和外觀。 |
自訂通用對話框 | 討論如何使用一般對話框。 |
使用一般對話框 | 涵蓋叫用一般對話框的工作。 |
通用對話框參考 | 包含 API 參考。 |
函式
名稱 | 描述 |
---|---|
CCHookProc | 接收適用於 [色彩] 對話框之預設對話框程序的訊息或通知。 這是搭配 ChooseColor 函式使用的應用程式定義或連結庫定義的回呼函式。 |
CFHookProc | 接收適用於 [字型] 對話框之預設對話框程序的訊息或通知。 這是搭配 ChooseFont 函式使用的應用程式定義或連結庫定義的回呼程式。 |
ChooseColor | 建立 [色彩] 對話框,讓用戶能夠選取色彩。 |
ChooseFont | 建立 [字型] 對話框,讓用戶能夠選擇邏輯字型的屬性。 這些屬性包括字型系列和相關聯的字型樣式、點大小、效果(底線、刪除線和文字色彩),以及腳本(或字元集)。 |
CommDlgExtendedError | 傳回常見的對話框錯誤碼。 此程式代碼表示執行其中一個通用對話框函式期間發生的最新錯誤。 |
FindText | 建立系統定義的無 模式 [尋找 ] 對話框,讓使用者指定要搜尋的字元串,以及在檔中搜尋文字時要使用的選項。 |
FRHookProc | 接收適用於 [尋找] 或 [取代] 對話框之預設對話框程序的訊息或通知。 這是與 FindText 或 ReplaceText 函式搭配使用的應用程式定義或連結庫定義回呼函式。 |
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 | 當使用者指定檔名,然後按下 [確定] 按鈕時,由檔案總管樣式的 [開啟] 或 [另存新檔] 對話框傳送。 |
CDN_FOLDERCHANGE | 開啟新資料夾時,由檔案總管樣式 的 [開啟 ] 或 [另存新檔 ] 對話框傳送。 |
CDN_HELP | 當使用者按兩下 [說明] 按鈕時,由檔案總管樣式的 [開啟] 或 [另存新檔] 對話框傳送。 |
CDN_INCLUDEITEM | 由 [開啟 ] 或 [另存新檔 ] 對話框傳送,以判斷對話方塊是否應該在殼層資料夾的專案清單中顯示專案。 當使用者開啟資料夾時,對話框會傳送 資料夾中每個專案的CDN_INCLUDEITEM 通知。 只有當建立對話框時已設定OFN_ENABLEINCLUDENOTIFY旗標時,對話框才會傳送此通知。 |
CDN_INITDONE | 當系統完成排列對話框中的控件時,由 Explorer 樣式 的 [開啟 ] 或 [另存新檔 ] 對話框傳送。 系統會移動標準控件,讓子對話框的控件騰出空間。 |
CDN_SELCHANGE | 當選取範圍在顯示目前開啟的資料夾或目錄內容的清單框中變更時,由檔案總管樣式 的 [開啟 ] 或 [另存新 檔] 對話框傳送。 |
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 | 通知 Page Setup 對話框 PagePaintHook 的勾點程式,對話框即將在範例頁面的邊界矩形內繪製希臘文文字。 |
WM_PSD_MARGINRECT | 通知頁面設定對話框PagePaintHook的攔截程式,對話框即將繪製範例頁面的邊界矩形。 |
WM_PSD_MINMARGINRECT | 通知 範例頁面中邊界矩形座標的PagePaintHook 攔截程式。 [ 頁面設定 ] 對話框會在即將繪製範例頁面的內容時傳送此訊息。 |
WM_PSD_PAGESETUPDLG | 通知 PagePaintHook 攔截程式,指出 [頁面設定] 對話框即將繪製範例頁面的內容。 攔截程式可以使用此訊息來執行與繪製範例頁面內容相關的初始化工作。 |
WM_PSD_YAFULLPAGERECT | 通知 Page Setup 對話框 PagePaintHook 的攔截程式,對話框即將繪製信封範例頁面的傳回位址部分。 |
結構
名稱 | 描述 |
---|---|
CHOOSECOLOR | 包含 ChooseColor 函式用來初始化 [色彩] 對話框的資訊。 使用者關閉對話框之後,系統會傳回此結構中用戶選取的相關信息。 |
CHOOSEFONT | 包含 ChooseFont 函式用來初始化 [字型] 對話框的資訊。 使用者關閉對話框之後,系統會傳回此結構中用戶選取的相關信息。 |
DEVNAMES | 包含字串,可識別印表機的驅動程式、裝置和輸出埠名稱。 PrintDlgEx 和 PrintDlg 函式會使用這些字串來初始化系統定義的 Print 屬性表或列印對話方塊。 當使用者關閉屬性表或對話框時,會在此結構中傳回所選印表機的相關信息。 |
FINDREPLACE | 包含 FindText 和 ReplaceText 函式用來初始化 [尋找和取代] 對話框的資訊。 FINDMSGSTRING 已註冊的訊息會使用此結構,將使用者的搜尋或取代輸入傳遞至 [尋找或取代] 對話框的擁有者視窗。 |
OFNOTIFY | Ccontains 開啟或另存新檔對話方塊傳送至 OFNHookProc 攔截程式之WM_NOTIFY訊息的相關信息。 WM_NOTIFY訊息的 lParam 參數是 OFNOTIFY 結構的指標。 |
OFNOTIFYEX | 包含CDN_INCLUDEITEM通知訊息的相關信息。 |
OPENFILENAME | 包含 GetOpenFileName 和 GetSaveFileName 函式用來初始化 [開啟] 或 [另存新檔] 對話框的資訊。 使用者關閉對話框之後,系統會傳回此結構中用戶選取的相關信息。 |
OPENFILENAME_NT4 | 與 OPENFILENAME 相同,_WIN32_WINNT設定為 0x0400。 |
PAGESETUPDLG | 包含 PageSetupDlg 函式用來初始化 [頁面設定] 對話框的資訊。 當使用者關閉對話框之後,系統會傳回這個結構中使用者定義頁面參數的相關信息。 |
PRINTDLG | 包含 PrintDlg 函式用來初始化列印對話框的資訊。 當使用者關閉對話框之後,系統會使用此結構傳回用戶選取專案的相關信息。 |
PRINTDLGEX | 包含 PrintDlgEx 函式用來初始化 Print 屬性表的資訊。 當使用者關閉屬性表之後,系統會使用此結構傳回用戶選取專案的相關信息。 |
PRINTPAGERANGE | 指定列印作業中的頁面範圍。 列印作業可以有多個頁面範圍。 呼叫 PrintDlgEx 函式時,會在 PRINTDLGEX 結構中提供這項資訊。 |