Advertisement

重温 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)

还没有任何评论哟~