MFC 使用的回调函数
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