我需要将一个隐藏的窗口(BitBlt)的内容复制到另一个窗口.问题是,一旦我隐藏源窗口,我得到的设备上下文就不再画了.
您需要的是从
Windows XP起可在Win32 API中使用的
PrintWindow功能.如果您需要使用旧版本的Windows,则可以尝试使用
WM_PRINT,尽管我从来没有能够使其工作.
有一篇很好的文章here显示了如何使用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); }
我应该有一些使用wxPython的Python代码来实现同样的事情.如果你想要的话,给我留言