MFC 使用的回调函数

2025-12-29 09:18:57

Microsoft 基础类库中显示三个回调函数。 这些回调函数将传递给 CDC::EnumObjects、CDC::GrayString 和 CDC::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

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

lpData

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

返回值

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

备注

必须导出实际名称。

CDC::GrayString 的回调函数

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

语法

BOOL CALLBACK EXPORT OutputFunc(

HDC hDC,

LPARAM lpData,

int nCount);

参数

hDC

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

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,则应用程序不必中止打印作业。 否则,它必须通过调用 PeekMessage 或 GetMessage Windows 函数来中止打印管理器。

返回值

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

备注

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

另请参阅

结构、样式、回调和消息映射

CDC::EnumObjects

CDC::SetAbortProc

CDC::GrayString