重温 Win32 API ----- 截屏指定窗口并打印(Windows 32位版本)
发布时间
阅读量:
阅读量
有朋友提出需求,希望在使用VC++6.0开发的项目中添加打印窗口的功能,并请求提供一段可供调用的代码。考虑到该IDE较为陈旧,且对MFC框架中不够直观的封装方式并不满意,因此决定采用纯Win32 API进行开发,并通过C++类的形式对其进行简单的封装处理。
1 基本思路
窗口DC与打印机DC属于两种无法直接兼容的设备上下文类型,因此在两者之间传输位图数据时必须借助DIB格式。首先,利用BitBlt()函数将目标打印窗口的客户区域内容复制至内存中的DDB位图,随后通过GetDIBits()函数将DDB格式转换为DIB格式,最终借助StretchDIBits()函数将转换后的图像输出至打印机DC中。
代码实现与功能验证
头文件 WindowPrinter.h
#pragma once
/********************************************************************************
WindowPrinter 打印窗口类
功能描述:
提供截屏窗口并通过默认打印机,自动进行居中缩放打印
8. 使用说明:
样例代码如下。
HWND hwnd
全部评论 (0)
还没有任何评论哟~
