我需要将一个隐藏的窗口(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代码来实现同样的事情.如果你想要的话,给我留言