MFC 使用的回调函数

Microsoft 基础类库中显示三个回调函数。 这些回调函数将传递给 CDC::EnumObjectsCDC::GrayStringCDC::SetAbortProc。 请注意,所有回调函数必须在返回到 Windows 之前捕获 MFC 异常,因为无法跨回调边界引发异常。 有关异常的详细信息,请参阅异常一文。

CDC::EnumObjects 的回调函数
CDC::GrayString 的回调函数
Callback Function for CDC::SetAbortProc

要求

标头:afxwin.h

CDC::EnumObjects 的回调函数

ObjectFunc 名称是应用程序提供的函数名称的占位符

语法

int CALLBACK EXPORT ObjectFunc(
    LPSTR lpszLogObject,
    LPSTR* lpData);

参数

lpszLogObject
指向包含有关此对象的逻辑特性信息的 LOGPENLOGBRUSH 数据结构。

lpData
指向传递给 EnumObjects 函数的应用程序提供的数据。

返回值

此回调函数返回 int。 此返回值是用户定义的。 如果回调函数返回 0,EnumObjects 将提前停止枚举。

备注

必须导出实际名称。

CDC::GrayString 的回调函数

OutputFunc 是应用程序提供的回调函数名称的占位符

语法

BOOL CALLBACK EXPORT OutputFunc(
    HDC hDC,
    LPARAM lpData,
    int nCount);

参数

hDC
nWidth 标识一个内存设备上下文,该上下文具有宽度和高度至少为 nHeightGrayString 指定的值的位图。

lpData
指向要绘制的字符串。

nCount
指定要输出的字符数。

返回值

回调函数的返回值必须是 TRUE 才能指示成功;否则它是 FALSE。

备注

回调函数 (OutputFunc) 必须相对于坐标 (0,0) 而不是 (x, y) 绘制图像

Callback Function for CDC::SetAbortProc

AbortFunc 名称是应用程序提供的函数名称的占位符

语法

BOOL CALLBACK EXPORT AbortFunc(
    HDC hPr,
    int code);

参数

hPr
标识设备上下文。

code
指定是否发生了错误。 如果未发生错误,则为 0。 如果打印管理器当前磁盘空间不足,而应用程序等待后会有更多可用磁盘空间,则是 SP_OUTOFDISK。 如果 code 是 SP_OUTOFDISK,则应用程序不必中止打印作业。 否则,它必须通过调用 PeekMessageGetMessage Windows 函数来中止打印管理器。

返回值

如果打印作业继续,则中止处理程序函数的返回值为非零值;如果取消打印,则返回 0。

备注

必须导出实际名称,如 CDC::SetAbortProc 的“注解”部分所述。

另请参阅

结构、样式、回调和消息映射
CDC::EnumObjects
CDC::SetAbortProc
CDC::GrayString