函式類型
函式功能:該掛鈎函式是一個應用程式或庫定義的回調函式。ChooseColor函式與此函式一起使用掛鈎函式貯存信息或通告,此信息和通告套用於Color公共對話框的預設對話框函式。
LPCEHOOPROC類型定義了一個指向此回調函式的指針。CCHOOkProc是一個應用程式定義的函式名的位置占有者。
函式原型:UINT CALLBACK CCHookProc(HWND hdlg,UINT UIMSg,WPARAM wParam,LPARAM IParam);
參數:
hdlg:指向信息指定的Color對話框的句柄。
uiMag:標識存放的信息。
wParam:指定有關信息號的其他信息。精確意義根據UiMdsg參數的值來決定。
IParam:指定有關訊息的其他信息。精確意義由uiMsg參數的值米決定。如果uiMs多數表明WM_IMTDIALOG訊息,IParam是一個指向含有當對話框創建時指定的值的CHOOSECOLOR結構的指針。
返回值;如果掛鈎函式返回零值,預設對話框函式處理訊息。如果掛鈎函式返回非零值,預設對話框函式忽略訊息。
備註當用ChooseColor函式創建一個Color對話框時,應用程式可以為對話框函式提供CCHookProc掛鈎函式來處理訊息。套用傳送到對話創建函式中的CHOOSECOLOR結構可使掛鈎函式生效,也可指定IpfnHook成員中掛鈎函式的地址和指定Flags成員中CC_ENABIEHOOK標誌。預設對話框函式把訊息WM_INITDIALOG傳送到掛鈎函式之前先處理此訊息。對於其他所有的訊息,掛鈎函式首先存放訊息。然後其返回值決定此預設對話函式是處理訊息或忽略訊息。如果掛鈎函式處理WM_CTLCOLORDIG訊息,那么必須返回一個有效的刷子句柄以繪製對話框的背景。總之,如果掛鈎函式處理任何一種WM_CTLCOLOR訊息,它必須返回一個有效的刷了句柄以刷指定的控制板的背景。
掛鈎函式
不要從掛鈎函式中調用EndDialog函式。相反地掛鈎函式能調用PostMessage函式來把帶有IDABORT值的WMCOMMAND訊息傳送到對話框樞函式中。傳送LDABORT訊息使對話框關閉並使對話框返回值為FALSE。如果要知道為什麼掛鈎函式關閉對話框,必須在掛鈎函式和應用程式之間提供自身聯繫機理。
可以對公共對話框的標準控制臺進行子分類。但是公共對話框函式也可以對控制面板子分類、正因如此,在掛鈎函式處理訊息時必須對控制臺進行子分類。這就保證在對話框函式設定於分類函式之前,子分類函式存放了指定的控制訊息。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:2.0及以上版本;頭檔案:commdlg.h;庫檔案:用戶自定義。