函数功能:该函数是由应用程序定义或库定义的回调函数。它和FindText函数或Replace Text函数一定使用。挂钩函数接收用于Find或Replace公共对话框的缺省对话框函数的消息和通告。

    LPFRHOOKPROC类型定义了一个指向此回调函数的指针,FRHookProc是一个应用程序定义的函数名的位置持有者。数原型:UINT CALLBACK FRHookProc(HWND hdlg,UINT uiMsg WPARAM wParam,LPARAM IParam);

    参数:

    hdlg:指向消息所传送到的Find或Replace公共对话框窗口的句柄。

    uiMsg:指定有放的消息。

    wParam:指定有关消息的另外的信息,精确的意义要根据uiMsg参数的值来定。

    IParam:指定有关消息的另外的信息,精确的意义要根据uiMsg参数的值来定。如果uiMsg参数表明WM_INItDIALOG消息。IParam是一个指向FINDREPLACE结构的指针,该结构包含公共对话框创建时指定的值。

    返回值:如果挂钩函数返回零,缺省对话框函数处理消息;如果挂钩函数返回非零值,缺省对话框函数忽略消息。

    备注:当用FindText,或ReplaceText函数创建一个Find或Replace公共对话框时,可提供一个处理与公共对话框函数有关的信息和通告的FRHookProc挂钩函数。为使挂钩函数生效,应用传送到公共创建函数的FINDREPLACE结构且指定IpfnHook成员中挂钩函数的地址和指定Flags成员中FR_ENABLEHOOK标志的地址。缺省对话框函数处理WM_INTTDIALOG消息后,把它传递给挂钩函数,对于其他所有消息,挂钩函数首先接收消息,然后挂钩函数的返回值决定缺省对话框函数是处理消息或忽略它。如果挂钩函数处理WM_CTLCOLORDLG消息,那么必须返回一个有效的刷子句柄,以便绘制对话框的背景。总之如果挂钩函数处理任何一种WM_HLOLOR信息,那么必须返回一个有效的刷子句柄以绘制指定控制的背景。

    不须从挂钩函数调用EndDialog函数。相反,挂钩函数能调用PostMessage函数把带有IDABORT值的一个WM_COMMAND信息传送给对话框函数Posting IDABORT关闭对话框,使对话框函数返回FALSE值,若要了解为什么挂钩函数关闭对话框,必须提供挂钩函数和应用程序之间的联系机理。

    可以对公共对话框的标准控制面板进行子分类。但是公共对话框函数也可以对控制面板进行子分类。正因如此,必须在挂钩函数函数WM_INTDIALDG消息时对控制面板子分类。这就保证对话框函数设置子分类函数之前,子分类函数接收指定的控制消息。

    速查:Windows NT:3.1及以上版本;Windows:95及以上版本;windows CE:不支持;头文件:commdlg.h;库文件:用户自定义。