cchookproc()函数

函数功能:该挂钩函数是一个应用程序或库定义的回调函数。ChooseColor函数与此函数一起使用挂钩函数贮存信息或通告,此信息和通告应用于Color公共对话框的缺省对话框函数。

LPCEHOOPROC类型定义了一个指向此回调函数的指针。CCHOOkProc是一个应用程序定义的函数名的位置占有者。

函数原型:UINT CALLBACK CCHookProc(HWND hdlg,UINT uiMsg,WPARAM wParam,LPARAM IParam);

参数:

hdlg:指向信息指定的Color对话框的句柄。

uiMag:标识存放的信息。

wParam:指定有关信息号的其他信息。精确意义根据UiMdsg参数的值来决定。

IParam:指定有关消息的其他信息。精确意义由uiMsg参数的值米决定。如果uiMsg多数表明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;库文件:用户自定义。