我需要将隐藏的窗口(BitBlt)的内容复制到另一个窗口.问题是,一旦我隐藏了源窗口,我得到的设备上下文就不再被绘制了.
eli*_*ner 10
您需要的是自Windows XP以来在Win32 API中可用的PrintWindow功能.如果你需要它来使用旧版本的Windows,你可以尝试WM_PRINT,虽然我从来没有能够使它工作.
有一个很好的文章在这里显示了如何在使用PrintWindow,这里的那篇文章相关的代码片段:
// Takes a snapshot of the window hwnd, stored in the memory device context hdcMem
HDC hdc = GetWindowDC(hwnd);
if (hdc)
{
HDC hdcMem = CreateCompatibleDC(hdc);
if (hdcMem)
{
RECT rc;
GetWindowRect(hwnd, &rc);
HBITMAP hbitmap = CreateCompatibleBitmap(hdc, RECTWIDTH(rc), RECTHEIGHT(rc));
if (hbitmap)
{
SelectObject(hdcMem, hbitmap);
PrintWindow(hwnd, hdcMem, 0);
DeleteObject(hbitmap);
}
DeleteObject(hdcMem);
}
ReleaseDC(hwnd, hdc);
}
Run Code Online (Sandbox Code Playgroud)
我应该有一些使用wxPython实现相同功能的Python代码.如果你需要,请给我留言.