html和打印预览,窗口C++应用程序和html打印预览

Windows提供用于获取窗口图像的功能PrintWindow。下面是一个例子,从我的消息来源采取放置一个产生截图到剪贴板(它考虑到该功能可能无法在某些Windows版本的支持,但似乎并不重要的问题):

void PrintCapturedWindow(HWND hwnd)

{

HDC hdc = GetDC(hwnd);

if (hdc)

{

HDC hdcMem = CreateCompatibleDC(hdc);

if (hdcMem)

{

RECT rc;

GetClientRect(hwnd, &rc);

HBITMAP hbitmap = CreateCompatibleBitmap(hdc, rc.right-rc.left, rc.bottom-rc.top);

ReleaseDC(hwnd, hdc); hdc = 0;

if (hbitmap)

{

typedef BOOL WINAPI (* pPrintWindow)(HWND hwnd, HDC hdcBlt, UINT nFlags);

pPrintWindow ppw;

HMODULE user_hand = GetModuleHandle("user32.dll");

ppw = (pPrintWindow)GetProcAddress(user_hand, "PrintWindow");

if(ppw)

{

SelectObject(hdcMem, hbitmap);

(*ppw)(hwnd, hdcMem, 0);

}

::OpenClipboard(NULL);

::EmptyClipboard();

::SetClipboardData(CF_BITMAP, hbitmap);

::CloseClipboard();

DeleteObject(hbitmap);

}

DeleteObject(hdcMem);

}

if(hdc != 0) ReleaseDC(hwnd, hdc);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值