正文

Win32 API参考大全(五)2005-05-13 19:20:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/study/1037.html

分享到:

2.5  通用对话框函数(Common Dialog Box)

2.5.1  ChooseColor

函数功能:该函数创建一个能使用户从中选择颜色的通用颜色对话框。
函数原型:BOOL ChooseColor(LPCHOOSECOLOR IpCC);
参数:
lpCC:指向一个包括初始化对话框信息的CHOOSECOLOR结构。当ChooseColor函数返回时,此结构含有有关用户颜色选择的信息。
返回值:如果用户点击对话框中的OK按钮,返回值为非零值。CHOOSECOLOR结构中的rgbResult成员含有用户选择的颜色的RGB颜色值。如果用户取消或关闭Color对话框或错误出现,返回值为零。若想获得更多错误信息,请调用CommDlgExtondedError函数,此函数的返回值为下列中的一个:
  CDERR_FINDRESFAILURE;CDERR_MEMLOCKFAILURE;CDERR_INITIALIZATION;
  CDERR_NOHINSTANCE;CDERR_LOCKRESFAILURE;CDERR_NOHOOK
  CDERR_LOADRESFAILURE;CDERR_NOTEMPLATE;CDERR_LOADSTRFAlLURE;
  CDERR_STRUCTSIZE;CDERR_MEMALLOCFAILURE
备注Color对话框不支持彩色调色板,对话框提供的颜色的选择仅限于系统颜色和这些颜色的混合值,可以为对话框提供一个CCHOOKProc程序,此挂钩程序能处理发送给对话框的信息。通过建立CHOOSECOLOR结构中Flags成员的CC_ENABLEHOOK标志和指定IpfnHook成员中挂钩程序的地址,可使挂钩程序生效。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:2.0及以上版本;头文件:commdlg.h;库文件:commdlg32.lib;Unicode:在Windows NT环境中实现为Unicode和ANSI两个版本。

2.5.2  ChooseFont

函数功能:该函数创建一个使用户选择逻辑字体属性的对话框,这些属性包括字体名称、字体风格(如粗体、斜体或正常体)、字号、效果(如强调线,下划线或字体颜色)和手写体(或字符集)。
函数原型:BOOL ChooseFont(LPCHOOSEFONT Ipcf);
参数:
Ipcf:指向一个含有初始化对话框信息的CHOOSEFONT结构。当返回ChooseFont函数时,此结构含有用户对字体选择的信息。
返回值:如果用户点击对话框的OK按钮,返回值为非零值,CHOOSEFONT结构中的成员表明用户的选择。如果用户取消或关闭Font对话框或出现错误信息,返回值为零。若想获得更多错误信息。请调用CommDlgExtendedError函数,其返回值如下:
  CDERR_FINDRESFAILURE;CDERR_NOHINSTANCE;CDERR_INITIALIZATION;CDERR_NOHOOK
  CDERR_LOCKRESFAILURE;CDERR_NOTEMPLATE;CDERR_LOADRESFAILURE;
  CDERR_STRUCTSIZE;CDERR_LOADSTRFAILURE;CDERR_MAXLESSTHANMIN
  CDERR_MEMALLOCFAILURE;CDERR_NOFONTS;CDERR_MEMLOCKFAILURE
备注:可以为Font对话框提供一个CFHOOKProc挂钩程序。此挂钩程序能够处理发送给对话框的信息。
通过建立CHOOSEFONT结构中Flags成员的CE ENABLEHOOK标志和指定IPfn Hook成员中挂钩程序的地址可以使挂钩程序有效。
挂钩程序可以把信息WM_CHOOSEFONT_GETLOGLONT,WM_CHOOSEFONT_SETFLAGS和
WM_CHOOSEFONT_SETLOGFONT消息发送给对话框以便得到和创建当前值和对话框的图标。
速查:Windows NT:3.1及以一上版本;Windows:95及以上版本;Windows CE:不支持;头文件:Commdlg.h;库文件:comdlg32.lib;Unicode:在Windows NT环境中实现为Unicode和ANSI两个版本。

2.5.3  CommDlgExtendedEorror

函数功能:该函数返回一个对话框错误代码,此代码显示出在执行下列对话框函数时要出现的最近的错误:ChooseColor,GetOpenFileName,ChooseFont,GetSaveFileName,FindText,PrintDlg,ReplaceText,PageSetpDlg。
函数原型:DWORD CommDlgExtendedError(VOID)
参数:无。
返回值:如果最近一次对话框函数调用成功,返回值不确定,如果对话框函数因为用户关闭或取消对话框而返回FALSE,则返回值为零。否则返回值是非零错误代码。有关更多的信息,参见下列说明部分。
备注:CommDlgExtendedError函数可以返回公共对话框函数中的一般的错误代码。
    另外,也返回某一具体公共对话框的错误代码。由CommDlgExtendedError返回的错误代码在CDERR.H文件里定义:
    下面是CommDlgExtendedError的返回错误代码值。
CDERR_DIALOGFAILURE:对话框不能创建。DialogBox函数对对话框函数的调用失败,例如如果公共对话框的调用指定一个无效的窗口句柄,则此种错误产生。
CDERR_FINDRESFAILURE:公共对话框函数没能找到指定资源。
CDERR_INITIALIZATION:公共对话框函数在初始化过程中失败。当没有足够内存时此错误出现。
CDERR_LOADRESFAILURE:公共对话框函数没能调出指定的资源。
CDERR_LOADSTRFAILURE:公共对话框函数没能调出指定的串。
CDERR_LOCKRESFAILURE:公共对话框函数没能销定指定的资源。
CDERR_EMAILCOLFAILURE;公共对话框函数不能为内部结构分配内存。
CDERR_NOHINSTANCE:在对应的公共对话框初始化结构Flags成员中设置ENABLETEMPLATE标志,但是在提供相应的事例句柄时出错。
CDERR_NOHOOK:在对应的公共对话框初始化结构Flags成员中设置ENABLEHOOK标志,但是在提供相应的挂钩程序指针时出错。
CDERR_NOTEMPLATE:在对应的公共对话框初始化结构Flag成员中设置ENABLETEMPLATE标志,但是在提供相应的模板时出错。
CDERR_REGISTERMSGFAIL:当RegisterWindowMessage函数被公共对话框函数调用时,该函数返回错误代码。
CDERR_STRUCTSIZE:对应的公共对话框初始化结构旧IStructSize成无效成员。
    下列为Print Dlg函数的返回值。
PDERR_CREATEICFAILURE:当PrintDlg函数想创建一个信息表时出错。
PDERR_DEFAIKTDFFERENT:利用在DEVNAMES结构中wDefault成员指定的DN_DEFAULTPRN标志,可以调用PrintDlg函数。但是被另外一个结构成员描述的打印机与当前缺省的打印机不匹配。(此错误发生在储存DEVNAMES结构和用户利用控制面板改变缺省打印机时)。要使用DEVNAMES结构所描述的缺省打印机,必须清空DN_DEFAULTPRN标志并且要再一次调用PrintDlg。要使用缺省打印机,必须用NULL取代DEVNAMES结构俐DEVMODE结构,如果此结构存在的话),并且要再一次调用PrintDlg函数。
PDERR_DNDMMISMATCH:OEVMOOE和DEVNAMFS结构中的数据描述了两种不同的打印机。
PDERR_GETDEVMODEFAIL;打印机驱动程序不能初始化一个DEVMODE结构(这种错误代码只用于Windows 3.0及以上版本的打印机驱动程序)。
PDERR_INITFAILURE:PrintDlg函数不能初始化,并且没有更多的错误代码来描述此错误。
PDERR_LOADDRVFAILURE:PrinDlg函数不能为指定的打印机装备设备驱动器。
POERR_NODEFAULTPRN:不存在缺省打印机。
POERR_NODEVKES:未发现打印机驱动程序。
PDERR_PARAEFAILURE:PrintDlg函数在分析WIN.INI文件中的[devces]部分的字符串时出错。
PDERR_PRINTERNOTFOUND;WIN.INI文件的[device]部分不包含所请求打印机的入口
PDERR_RETDEFFAILURE_PD:RETURNDEFAULT标志被指定在PRINTDLG结构的Flags成员中。但hDevMode或hDevNames成员不是NULL。
PDERR_SETUPFAILURE:PrintDlg函数在装载所需要的资源时出错。
    下面是ChooseFont函数的返回值。
CFERR_MAXLESSTHANMIN:CHOOSEFONT结构中的nSizeMax成员所给定的大小小于nSizeMin成员给定的大小。
CFERR_NOFONTS:不存在字体。
    下面是GetOpenFileName和GetSaveFileName函数的返回值。
FNERR_BUFFERTOOSMALL:由OPENFILENAME结构的lpstrFile成员指向的缓冲区对由用户指定的文件名来说太小。前两种IpstrFile缓冲区的字节含有一个指定大小的整型值。用来存放全文件名。
FNERR_INVAIDFILENAME:文件名无效。
FNERR_SUBASSFAILIIRE:由于没有足够内存,在对列表框分类时出错。
    下面是FindText和ReplaceText函数的返回值。
FRERR_BUFFERLENGTHZERO:结构FINDREPLACE中的一个成员指向一个无效的缓冲区。
    在Windows CE中Windows CE支持另外的四种返回值,如下:
CDERR_REGISTRYFAILURE  公共对话框函数无法读注册表。
    下面的一些返回值只适用于PrintDlg函数。
PDERR_NOPORTS:没有注册的端口PDERR_NOPRINTERS:没有注册的打印机
PDERR_CREATEDCFAILURE:CreateDC调用失败
Windows CE不支持CDERR_LOADSTRFAILURE、CDERR_MEMLOCKFAILURE或CDERR_REGISTERMSGFAIL返回值。Windows CE也不支持任何PDERR_错误值。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本:头文件:commdlg.h;库文件:comdlg32.lib。

2.5.4  FindText

函数功能:该函数创建一个系统定义的无模式Find对话框,为使用户指定一个串来查找文本内的文字。
函数原型:HWND FindText(LPFINDREPLACE lpfr);
参数:
Ipfr:指向一个FINDEPLACE结构,此结构包含用来初始对话框的信息。对话框用此结构把用户输入的信息传送到应用程序。有关更多的信息,请参见下面说明部分。
返回值:如果函数调用成功,返回值是对话框的窗口句柄。可以使用窗口句柄与对话框联系或关闭它;如果函数调用失败,返回值为NULL。若想获得更多的错误信息,请调用CommDlgExtendedError函数。其返回值如下:
  CDERR_FINDRESFAILURE;CDERR_MEMLOCKFAILURE;CDERR_INITIALIZATION
  CDERR_NOHINSTANCE;CDERR_LOCKRESFAILURE;CDERR_NOHOOK
  CDERR_LOADRESFAILURE;CDERR_NOTEMPLATE;CDERR_LOADSTRFAILURE
  CDERR_STRUCTSIZE;CDERR_MEMALLOCFAILURE;FRERR_BUFFERLENGTHZERO
备注:FindText函数不执行查找操作,相反,对话框把FINDMSGSTRING己登记的信息传送到对话框窗口的窗口函数。当创建对话框时FINDReplace结构中的hwndCwner成员标识窗口。
    调用Find Text函数前,必须调用RegisterWindowMessage函数以得到FINDMSGSTRING信息的标识符,对话框函数在用户点击FindNext按钮或对话框被关闭时利用此标识符传送信息。FINDMSGSTRING信息的IParam参数包含一个指向FINDREPLACE结构的指针,此结构的Flags成员显示开诚信息的事件。
其他成员显示用户的输入。
    若想创建对话框,必须利用应用程序的主信息链中的IsDialogMessage函数来保证对话框正确处理键盘输入,例如Tab和Esc键。IsDialogMessage返回值显示Find对话框是否处理信息。
    可以为Find对话框提供一个挂钩函数FRHookProc。挂钩函数可处理发送到对话框中的信息。为使挂钩函数生效,可设置HNDREPLACE结构的Flags成员的FR_ENABLEHOOK标志,且指定IpfnHook成员中挂钩函数的地址。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:commdlg.h;库文件:comdlg32.lib;Unicode:在Windows NT环境中实现为Unicode和ANSI两个版本。

2.5.5  GetFileTitle

函数功能:该函数返回由IpszFile参数标识的文件名。
函数原型:short GetFTitle(LPCTSTR LPTSTR IpszTitle,WORD cbBuf);
参数:
IpszFile:指向一个文件名或文件位置的指针。
IpszTitle:指向一个缓冲区,在此缓冲区中函数复制文件名。
chBuf:指定由IpszTitle函数指向的缓冲的字节长度。
返回值:如果函数调用成功,返回值为零;如果文件名无效,返回值为一负值。如果由IpszTitle参数指向的缓冲区的太小,返回值为一正整数,其值指定了所需缓冲区的大小。所需缓冲区的大小还包括结尾的NULL字符。
备注:如果由IpszFile参数指向的缓冲区包含下列任何一个成员,GetFileTitle函数返回一个错误信息值。
一个空字符串;一个含有星号()、开括号([)、闭方括号(])的串、一个以冒号(:)、斜杠(/)或倒斜杠结尾的串;一个长度超过缓冲区长度的串;一个无效字符(如,一个空格或一个不能打印的字母):为得到文件名所需的缓冲区的大小,用设置为NULL的IpszTitle和设置为零的cbBuf调用函数。函数将返回所需的大小。
    GetFileTitle函数返回一个串,系统应用此串为用户显示文件名。这就意味着如果返回串应用在文件系统函数的调用中不可能准确地标识文件。
    如果证IpszTitle缓冲区太小,GetFile Title返回的大小需要含有显示名。在IpszFile缓冲区指定的需要的大小和字符之间没有许可的联系。
速查:Windows NT:3.1及以上版本:Windows:95及以上版本:Windows CE:不支持:头文件:Commdlg.h;库文件:comdlg32.fib;Unicode:在Windows NT环境中实现为Unicode和ANSI两个版本。

2.5.6  GetOpenFileName

函数功能:该函数创建一个Open公共对话框,使用户指定驱动器、目录和文件名、或使用户打开文件。
函数原型:BOOL GetOpenFileName(LPOPENFILENAME Ipofn);
参数:
Ipofn:指向包含初始化对话框的信息的一个OPENFILENAME结构。当OpenfileName函数返回时,此结构包含有关用户文件选择的信息。
返回值:如果用户指定了一个文件名,点击OK按钮,返回值为非零。由OPENFILENAME结构的IPstrFile成员指向的缓冲区含有全路径和用户指定的文件名。如果用户取消或关闭Open对话框或错误出现,返回值为零。若想获得更多的错误信息,请调用CommDlgExtendedError函数。
备注:从Windows 95和Windows NT 4.0版开始,缺省的Open对话框提供了与Windows Explorer相似的用户界面特征。可以为一个浏览器风格的Open对话框提供一个OFNHOOKProc挂钩函数。设置OPENFILFNAME结构的Flags成员中OFN_EXPLORER和OFN_ENABLEHOOK标示和指定IpfnHook成员中挂钩函数的地址,可使挂钩函数生效。
Windows 95和Windows NT仍支持旧风格的Open对话框以便维持与一个Windows 3.1或Windows NT3.51用户界面相一致的用户界面。使OFNHOOKProcOldstyle挂钩函数生效和保证OFN_EXPLORER标志没有被设置,就可以显示旧式的Open对话框。
    为显示允许用户选择一个目录而不是一个文件的对话框,要调用SHBrowseForFolder函数。
    Windows CE:并不是每一个OPENFILENAME结构的成员都在Windows CE中被定义。有关定义成员的更多的信息,请参见OPENFILENAME结构的资料主题。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:COmmdlg.h;库文件:comdlg32.lib;Unlcode:在Windows NT环境中实现为Unicode和ANSI两个版本。

2.5.7  GetSaveFileName

函数功能:该函数创建一个Save公共对话框,以便用户指定驱动器、目录和文件名。
函数原型:BOOL GetSaveFileName(LPOPENFILENAME Ipofn);
参数:
Ipofn:指向一个包含初始化对话框信息的OPENFILENAME结构。当GetsaveFileName函数返回时,此结构含有关于用户文件选择的信息。
返回值:如果用户指定了一个文件名且点击OK按钮,返回值为非零值。由OPENFILENAME结构中的归IpstrFile成员指向的缓冲区含有全路径和用户指定的文件名。如果用户取消或关闭Save对话框或错误出现,返回值为零。若想获得有关更多的错误信息,请调用CommDlgExtendError函数,其返回值同GetOpenFileName返回值。
速查:Windows NT:3.1引及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:commdlg.h;库文件:comdlg32.lib;Unicode:在Windows NT环境中实现为Unicode和ANSI两个版本。

2.5.8  PageSetupDlg

函数功能:该函数创建一个PageSetup对话框,此对话框能使用户指定打印页的属性。这些属性包括纸张大小和来源,送纸方向和页边距。
函数原型:BOOL PageSetupDlg(LPPAGESETUPDLGI ppsd);
参数:
Ippsd:指向一个包含初始化对话框信息的PAGESETUPDLG结构。当函数返回时,该结构存放有关用户选择的信息。
返回值:如果用户点击OK钮,返回值为非零值,Ippsp参数指向的PAGESETUPDLG结构中的成员显示用户的选择。如果用户取消或关闭PageSetup对话框或错误出现,返回值为零。若想获得更多的错误信息,请调用CommDlgExtendedError函数
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:commdlg.h;库文件:commdlg32.lib;Unicode:在Windows NT环境中实现为Unicode和ANSI两个版本。

2.5.9  PrintDlg

函数功能:该函数显示打印对话框或打印设置对话框。打印对话框使用户指定特殊的打印工作的特点。
打印设置对话框不能应用在新应用程序中,它已经被PageSetupDlg函数创建的打印设置公共对话框所替代。
函数原型:BOOL PrintDIg(LPPRINTDLG Ippd);
参数:
Ippd:指向一个含有初始化对话框信息的PRINTDLG结构。当PRINTDLG函数返回时,此结构含有关用户选择的信息。
返回值:如果用户点击OK按钮,返回值为非零值。由lppd参数指向的PRINTDLG结构中的成员显示用户的选择。如果用户取消或关闭Print或PrinterSetup对话框或错误出现,返回值为零。若想获得更多的错误信息,请调用CommDlgError函数。如果用户取消或关闭对话框,函数返回零值:否则,返回值如下:
  CDERR_FINDRESFAILURE PDERR_CRETELCFAILUPE
  COERR_INITIALIZATION PDERR_DEFAULTDIFFERENT
  CDERR_LOADRESFAILURE PDERR_DNDMMISMATCH
  CDERR_LOADSTRFAILURE PDERR_GETDEVMODEFAIL
  CKERR_LOCKRESFAILURE PDERR_INITFAILURE
  CDERR_MEMALLOCFAILURE PDERR LOADDRVFAILURE
  CDERR_MEMLOCKFAILURE PDERR_NODEFAULTPRN
  CDERR_NOHINSTANCE PDERR_NODEVICES
  CDFRR_NOHOOK PDERR_PARSEFAILURE
  CDERR_NOTEMPLATE PDERR_PRINTERNOTFOUND
  CDERR_STRUCTSIZE PDERR_RETDEFFAILURE
备注:如果挂钩函数(由PRINTDLG结构中的IpfnrintHOOk成员或IpfnSetupHOOk成员指向的)处理WM_CTLCOLORDLG信息,挂钩函数必须返回一个刷子句柄,此刷了用来刷控制背景。
    Windows NT 5.0以及以后的版本:可用PrintDlgEx函数来显示一个Print属性页,此属性页有一个含有Print公共对话框相似的控制的General页,其控制与Print公共对话框中的控制相似。
    Windows CE:PRINTDLG结构包含Windows CE中不同的成员。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:2.0及以上版本;头文件:commdlg.h;库文件:comdlg32.lih;Unicode:在Windows NT环境中实现为Unicode和ANSI两个版本。

2.5.10  PrintdlgEx

函数功能:该函数显示一个Print属性页。该属性页使用户指定特定的打印工作的特性,一个Print属性页有一个控制的General页。该控制与Print中的对话框相似。属性页也有另外紧随General页的指定的应用程序和指定的驱动器特性页。
函数原型:HRESULT PrintDlgEx(LPPRINTDLGEX Ippd);
参数:
Ippd:指向一个包括初始化属性页信息的PRINTDLGEX结构。当PrintDlgEx函数返回时,此结构含有关于用户选择的信息。
返回值:如果函数调用成功,返回值为S_OK,且PRINTDLGEX结构中的dw ResuhltAction成员含有下列值:
PD_RESULT_APPLY:用户点击Apply按钮,然后点击Cancel按钮,这显示出用户想应用在属性页中做的改变,但还不想打印。当Apply按钮被点击时,PRINTDLGEX结构包含用户指定的信息。
PD_RESUCT_CANCEI:用户点击Cancel按钮,PRINTDLGEX结构中的信息未被改变。
PD_RESUCT_PRINT:用户点击Print按钮,PRINTDLGEX结构含有用户指定的信息。
    如果函数调用成功,返回值可能是下列COM错误代码中的一个,有关更多的信息请参见ErrorHandling。
E_OUTOFMEMORT:内存不足;E_INVALIDARG:一个或更多的参数无效。
E_POINTER:指针失效;E_HANDLE:句柄失效;E_FAIL:不确定的错误。
备注:有关更多的信息,请见Print Propertysheet。
速查:Windows NT:5.0及以上版本;Windowss:不支持;Windows CE:不支持;头文件:commdlg.h,库文件。comdlg32.lib;Unicode:在Windows NT环境中实现为Unicode和ANSI两个版本。

2.5.11  ReplaceText

函数功能。该函数创建一个系统定义的无模式对话框,此对话框使用户查找或替代一个串,或执行控制和替代操作。
函数原型:HWND Replace Text (LPFINDREPLACE Ipfr);
参数:
Ipfr:指向一个包含初始化对话框的信息的FINDREPLACE结构。对话框应用此结构把用户输入的有关信息传送到应用程序。有关更多的信息,见卜列说明部分。
返回值:如果函数调用成功,返回值为对话框的窗口句柄,可以用窗口句柄与对话框联系或关闭它。如果函数调用失败,返回值为NULL。若想获得更多的错误信息,调用CommDlgExError函数,其返回值如下:
CDERR_FINDRESFAILURE CDERR_MEMLOCKFAILURE
CDERR_INITIALIZATION COERR_NOHINSTANCE
CDERR_LOADRESFAILURE CDERR_NOHOOK
CDERR_LOADSTRFAILURE CDERR_BITEMPLATE
CDERR_LOCKRESFAILURE CDERR_STRUCTSIZE
CDERR_MEMALLOCFAILURE FRERR_BUFFERLENGTHZERO
备注:PepIACE Text函数不执行文本替代操作。相反,对话框把FINDSGSTRING 已登记的信息传送到对话框窗口的窗口函数。当创建对话框时,FINDREPLACE结构的hwndowner成员指定该对话框窗口。
    调用ReplaceText函数之前,必须调用RegisterWindowMessage函数为FINDSGSTRING信息登记标识。
当用户击点Find Next,Replace ALL按钮时,或当关闭对话框时,对话框函数应用这些标识发送信息。
FINDMSGSTRING信息中的IParam参数含有一个指向FINDREPLACE结构的指针。此结构的Flags成员表明了形式信息的事件。该结构中其他的成员表明用户的输入信息。
    如果创建了Replace对话框,必须应用应用程序信息链中的IsDialogMesssage函数来保证对话框能正确处理链盘输入信息,例如Tab键和Esc键。
    ISDialogMessage函数返回值表明Replace对话框是否处理信息。
    可以为Replace对话枢提供一个FRHookProc挂钩函数,此挂钩函数能处理发送到对话框中的信息。
为使一个挂钩函数生效,可设置FINDREPLACE结构中Flags成员的FR_ENABLEHOOK标志且指定IpfnHook成员中挂钩函数的地址。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:commdlg.h;库文件:comdlg32.lib:Unicode:在Windows NT环境中实现为Unicode和ANSI两个版本。

2.5.12  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;库文件:用户自定义。

2.5.13  CFHookProc

函数功能:该挂钩函数是一个应用程序定义的或库定义的回调函数,此回调函数与ChooseFont函数一起使用。挂钩函数接收用于Font公共对话框的缺省对话框函数的消息和通告。
    LPCFHOOKPROC类型定义了一个指向这种回调函数的指针。CFHOOKProc是一个由应用程序定义的函数名的位置占有者。
函数原型:UINT CALLBACK CFHookProc(HWND hdlg,UINT uiMsg,WPARAM wParam,LPARAM IParam);
参数:
hdlg:指向消息所指的Font对话框窗口的句柄。
uiMsg:指定存放的消息。
wParam:指定有关消息的其他信息。精确的意义根据uiMsg参数的值来决定。
IParam:指定有关消息的其他信息。精确的意义根据uiMSg参数的值来决定。如果uiMsg参数表明WM_INITDIALOG消息,则IParam是一个指向CHOOSEFONT结构的指针,该结构含有创建公共对话框时指定的值。
返回值:如果挂钩函数返回零值,缺省对话框函数处理消息。如果挂钩函数返回一个非零值,缺省对话框函数忽略消息。
备注:用ChooseFont函数创建一个Font对话框时,可以为对话框函数提供挂钩函数来处理消息。
    为使挂钩函数生效,要用传送到对话创建函数的CHOOSEFONT结构,指定IpfnHook成员中挂钩函数的地址和Flags成员中CF_ENABLEHOOK标志。
    缺省的对话框函数处理WM_INTDIALOG消息后,把它传送给挂钩函数。对于其他消息,挂钩函数首先存放此消息。然后挂钩函数的返回值决定缺省对话函数是否处理消息或忽略它。
    如果挂钩函数处理 WM_CTLCOLORDLG信息,它必须返回一个有效的刷子句柄,以刷对话的背景。
总之,如果挂钩函数处理任何一个WM_CTLCOLOR消息,那么必须返回一个有效刷子句柄,以绘制指定控制的背景不须从挂钩函数调用EndDialog函数。相反,挂钩函数能调用PostMessage函数,把带有IDABORT值的一个WM_CDOMMAND信息传送给对话框函数Posting IDABORT关闭对话框,使对话框函数退回FALSE值,若要了解为什么挂钩函数关闭对话框,必须提供挂钩函数和应用程序之间的联系机理。
可以对公共对话框的标准控制面板进行子分类。但是公共对话框函数也可以对控制面板进行子分类。正因如此,必须在挂钩函数WM_INTDIALDG处理消息时对控制面板子分类。这就保证对话框函数设置子分类函数之前,子分类函数接收指定的控制消息。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:commdlg.h;库文件:用户自定义。

2.5.14  FRHookProc

函数功能:该函数是由应用程序定义或库定义的回调函数。它和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;库文件:用户自定义。

2.5.15  OFNGookProc

函数功能:该挂钩函数是应用程序定义的或库定义的回调函数,此回调函数与Explorer_Style和Save As公共对话框一起使用。函数贮存从公共对话框发送来的消息或通知LPOFNHOOKPROC类型定义一个指向回调函数指针,OFNHOOKProc是应用程序定义的或库定义的函数名的位置占有者,当创建一个Open或Save As公共对话框时,如果没有指定OFN_EXPLORER标志且需一个挂钩函数。必须用旧式的OFNHookProcOldSttyle挂钩函数。这种情况下对话框将显示旧式的用户界面。
函数原型:UINT CALLBACK OFNHookProc(HWND hdlg,UINT uiMsg,WPARAM wParam,LPARAM IParam);
参数:
hdlg:指向Open或Save as对话框的子对话框的句柄。用GetParent函数可得到指向Open或Save As对话框窗口的句柄。
uiMsg.标识存放的消息。
wParam:指定有关消息的其他信息。精确的意义要根据uiMSg参数的值来决定。
IParam;指定有关消息的其他信息。精确的意义要根据uiMsg参数的值来决定。如果uiMsg参数显示了WM_INITDIALOG消息,IParam是一个指向OPENFILENAME结构的指针。该结构含有创建对话框时指定的值。
返回值:如果挂钩函数返回零,缺省对话框函数处理消息。如果挂钩函数返回非零值,缺省对话框函数忽略消息。对于CDN_SHAREVIOLATION和CDN_FILEOK通告消息,挂钩函数应该返回非零值,以表明已经利用SetWindowLong函数设置了一个非零DWL_MSGRESULT值。
备注:当用GetOpenFileName或GetSaveFileName函数创建浏览器风格的Open或Save As公共对话框时,可以提供一个OFNHookProc挂钩函数。为使挂钩函数生效,须应用传递到对话创建函数的OPENFILENAME结构,且须指定一个指向PfnHook成员中的挂钩函数的指针,及指定Flags成员中OFN_ENABLEHOOK标识。
    如果为浏览器风格的公共对话框提供了一个挂钩函数,系统创建了一个缺省对话框的子对话框,挂钩函数为子对话框作为对话函数,此子对话框以OPENHLENAME结构指定的模块为基础,或如果没有指定模板,对话框是一个缺省的子对话框。当缺省对话框函数正在创建WM_INITDALOG消息时,创建了子对话框。在子对话框处理它本身的WM_INITDIALOG消息时,缺省对话函数删除掉标准控制面板,如果需要,可为子对话框的其他的任何一个控制面板提供空间,然后系统将CDN_INITDONE通告消息发送给挂钩函数。
    挂钩函数不接收指定给缺省对话框的标准控制面板的消息。可以对控制面板进行子分类,但是如果控制面板使应用程序与公共对话框将来的版本不一致,那么不能进行子分类。但浏览器风格的公共对话框提供了一套消息,此挂钩函数可利用此消息来最小化和控制对话框。它包括了从对话框发送来的一组通知消息,还有可以发送到从对话框检取信息的消息。关于这些消息的全部列表,参见EXplorer-Style HookProcedures。如果挂钩函数处理WM_CTLCOLORDLG信息,它必须返回一个有效的刷子句柄,以刷对话的背景。总之,如果挂钩函数处理任何一个WM_CTLCOLOR消息,那么必须返回一个有效刷子句柄,以绘制指定控制背景。不须从挂钩函数调用EndDialog函数。相反,挂钩能调用PostMessage函数把带有IDABORT值的一个WM_COMMAND信息,传送给对话框函数Posting IDABORT来关闭对话框,使对话框函数返回FALSE值。若要了解为什么挂钩函数关闭对话框,必须提供挂钩函数和应用程序之间的联系机理。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:commdlg.h;库文件:用户自定义。

2.5.16  OFNHookProcOldStyle

函数功能:该挂钩函数是应用程序定义或库定义的回调函数。此回调函数与Open和Save AS公共话框一起使用。函数接收指定给对话框函数的消息或通告。LPOFNHOOKPROC类型定义了一个指向这种回调函数的指针。OFNHookProcOldStyle是应用程序定义的或库定义的函数名的位置占有者。当创建一个Open或Save As公共对话框时,如果指定OFN_EXPLORER标志且需一个挂钩函数,那么必须应用一个Explorer_style的OFNHookProc挂钩函数。
函数原型:UINT CALLBACK OFNHookProcOldStyle(HWND hdlg,UINT uiMsg WPARAM wParam,LPARAM IParam);
参数:
hdlg:指向消息指定的Open或Save As对话框窗口。
uiMsg:标识接收的消息。
wParam:指定有关消息的其他信息。精确的意义要根据uiMSg参数的值来决定。
IParam:指定有关消息的其他信息。精确的意义要根据uiMsg参数的值来决定。如果uiMsg参数显示了WM_INITDIALOG消息,IParam是一个指向OPENFILENAME结构的指针。该结构含有创建对话框时指定的值。
返回值:如果挂钩函数返回零,缺省对话框函数处理消息;如果挂钩函数返回非零值,缺省对话框忽略消息。
备注:当用GetOpenFileName或GetSaveFileName函数创建一个旧式的Open或Save As对话框时。可以提供一个OFNHookProcOldStyle挂钩函数。为使挂钩函数生效,须应用传递到对话创建函数的OPENHLENAME结构,且须指定一个指向IpnHook成员中的挂钩函数的指针,及指定Flags成员中OFN_ENABLEHOOK标识。
    如果挂钩函数处理WM_CTLCOLORDLG消息,那么必须返回一个有效的刷子句柄,以便绘制对话框的背景。总之,如果挂钩函数处理任何一种WM_CTLCOLOR信息,那么必须返回一个有效的刷子句柄以绘制指定控制的背景。
    不须从挂钩函数调用EndDialog函数。相反,挂钩函数能调用PostMessage函数,把带有IDABORT值的一个WM_COMMAND信息传送给对话框函数PostingIDABORT,并关闭对话框,使对话框函数返回 FALSE值,若要了解为什么挂钩函数关闭对话框,必须提供挂钩函数和应用程序之间的联系机理。
    可以对公共对话框的标准控制面板进行子分类。但是公共对话框函数也可以对控制面板进行子分类。正因如此,必须在挂钩函数WM_INTDIALDG处理消息时对控制面板子分类。这就保证对话框函数设置子分类函数之前,子分类函数接收指定的控制消息。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:commdlg.h;库文件:用户自定义。

2.5.17  PagePaintHook

函数功能:该挂钩函数是一个由应用程序或库定义的回调函数,该回调函数与PageSetup函数一起使用。该函数接收制作PageSetup对话框中样本页绘图的消息。LLPPAGEPAINTHOOK类型定义了一个指向此回调函数的指针。PagePaintHook是由应用程序或库定义的函数名的位置持有者。
函数原型:UINT CALLBACK PagePaintHook(HWND hdlg,UINT uiMsg,WPARAM wParam,LPARAM IParam);
参数:
hdlg:指向pagesetup对话枢窗口的句柄。
uiMsg:标识接收的消息。
wparam:指定有关消息的其他信息。精确的意义要根据uiMsg参数的值来决定。
IParam:指定有关消息的其他信息。精确的意义要根据uiMsg参数的值来决定。
返回值:如果挂钩函数对前三个绘图顺序消息中的任何一个返回值为TRUE。且前三个消息为WM_PSD_PAGESETUPDLG,WM_PSD_FULLPAGERECT或WM_PSD_MINMARGINRECT),对话框不再发送消息。且直到下一次系统需要重画样本页时才绘出样本页。如果对所有的三个消息。挂钩函数返回FALSE,对话框发送给图顺序的保留的消息。
    如果挂钩函数对绘图顺序中保留消息的任何一个,返回值为TRUE,那么对话框不绘样本页对应的部分,如果挂钩函数对这些信息中的任何一个返回值为FALSE,对话框绘样本页部分。
备注PageSetup对话框含有一个样本页的构想。此构想展示了用户选择如何影响打印输出的外观。构想由代表选择页或信封类型的长方形组成,点线长方形代表当前页边。部分字母展示了文本在打印出的页中的状况。当用PageSetupDlg函数创建Page Setup Dialog对话框时,可提供一个PagePaintHook挂钩函数来制作样本页的表观。
    为使挂钩函数生效,须用传递到创建对话函数的PAGESETUPDLG结构,且指定一个指向
IpfnPagePrintHook成员中挂钩函数的指针和指定Flags成员中PSD_ENABLEPAGEPAINTHOOK标志。
    无论何时,只要对话框将要绘样本页的内容,那么挂钩函数就接受以下列顺序列表的消息:WM_PSD_PAGESETUPDLG:对话框将要绘样本页,挂钩函数利用此消息准备给样本页里的内容。
WM_PSD_FULLPAGERECT:对话框要绘样本页,此信息指定样本页的长方形边。
WM_PSD_MINMARGINRECT:对话框将要绘样本页,此信息指定空白长方形。
WM_PSD_MARGINRECT:对话框将要绘空白长方形。
WM_PSD_REEKTEXTRECT:对话框将要在空白长方形内绘Greek文本。
WM_PSD_ENVSTAMPRECT:对话框将要在信封样本页上绘邮票长方形。此消息仅发向信封。
WM_PSD_YAFULLPAGERECT:对话框将要绘信封样本页的返回地址部分。此消息仅发向信封和其他纸张大小。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持:头文件:commdlg.h;库文件:用户自定义。

2.5.18  pageSetupHook

函数功能:该挂钩函数为由应用程序或库定义的回调函数。此回调函数与PageSetupDlg函数一起使用,它接收为PageSetup公用对话框设置缺省对话框的消息或通告。LPPAGESETUPHOOK类型定义了一个指向此回调函数的指针。PageSetupHook是由应用程序或库定义的函数名的位置持有者。
函数原型:UINT CALLBACK PageSetupHook(HWND hdlg,UINT uiMsg,WPARAM wParam,LPARAM IParam);
参数:
hdlg:指向消息指定给Page Setup对话框窗口的句柄。
uiMsg:标识接收的消息。
wParam:指定有关消息的其他信息。精确的意义要根据uiMsg参数的值来决定。
IParam:指定有关消息的其他信息。精确的意义要根据uiMsg参数的值来决定。
返回值:如果挂钩函数返回零,则缺省对话框函数处理消息;返回非零值,将忽略消息。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:commdlg.h;库文件:用户自定义。

2.5.19  PrintHookProc

函数功能:该挂钩函数是一个由应用程序或库定义的回调函数,此回调函数与PrintDlg函数一起使用。
函数接收指定给Print公共对话框的缺省对话框函数的消息和通知。LPPWTHOOKPROC类型定义了一个指向此回调函数的指针。PrintHookProc为由应用程序或库定义的函数名的位置占有者。
函数原型:UINT CALLBACK PrintHookProc(HWND hdlg,UINT uiMsg,WPARAM wParam,LPARAM IParam);
参数:
hdlg:指向消息指定给的Print公共对话框窗口的句柄。
uiMsg:标识接收的消息。
wParam:指定有关消息的其他信息、精确的意义由uiMsg参数的值来决定。
IParam:指定有关消息的其他信息、精确的意义由uiMsg参数的值来决定。
返回值:如果挂钩函数返回值为零,缺省对话框函数处理消息;返回非零值,将忽略消息。
备注:当用PrintDlg函数创建一个Print公共对话框时,可以提供一个PrintHookProc挂钩函数来处理指定给对话框函数的消息或通知。
    为使挂钩函数生效,要用传递到创建对话框函数的PRINTDLG结构,且要指定IpfnPrintHook成员中挂钩函数的地址和指定Flags成员中PD_ENABLEPRINTHOOK标志。
    缺省对话框函数把消息WM_InITDIALOG传送到挂钩函数之前先处理此消息。对于其他所有的消息,挂钩函数首先存放消息。然后其返回值决定此缺省对话函数是处理消息或忽略消息。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:2.0及以上版本;头文件:commdlg.h;库文件:用户自定义。

2.5.20  SetupHookProc

函数功能:该挂钩函数是一个由应用程序或库定义的回调函数,该回调函数与PrintDlg函数一起使用。
其他同函数19。
函数原型:UINT CALLBACK SetupHookProc(HWND hdlg,UINT uiMsg,WPARAM wParam,LPARAM IParam);
参数:
hdlg:指向消息指定给的Print公共对话框窗口的句柄。
UiMsg:标识接收的消息。
wParam:指定有关消息的其他信息、精确的意义由uiMSg参数的值来决定。
IParam:指定有关消息的其他信息、精确的意义由uiMsg参数的值来决定。
返回值:如果挂钩函数返回值为零,缺省对话框函数处理消息;返回非零值,将忽略消息。
备注;PrintSetup对话框函数已经被PageSetup对话框所取代。这需要用新的应用程序来使用。但是,为了一致性,PrintDlg函数仍支持Print Setup对话框的显示。可以提供一个SetupHookProc函数给PrintSetup对话框,从便处理指定给对话框函数的消息和通知。
    为使挂钩函数生效,要用传递到对话创建函数的PRINTDLG结构,且指定IpfnSetupHook成员中挂钩函数的地址和指定Flags成员中PD_ENABLESETUPHOOK标志。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:commdlg.h;库文件:用户自定义。

阅读(6919) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册