我已经阅读了有关GetDIBits或BitBlt的内容,但我不理解它们。

那可能是因为我不了解Windows如何实际处理Windows上的图形。如果有人可以将我引到我可以了解这些事情的页面,那将是完美的! :)

最佳答案

我在Windows WM_PAINT中使用此代码解决了问题。现在,它显示与目标窗口完全相同的内容。

PAINTSTRUCT ps;
HDC hdc = BeginPaint(MainWindow, &ps);

HDC TargetDC = GetDC(TargetWindow);

RECT rect;
GetWindowRect(TargetWindow, &rect);

BitBlt(hdc,0,0,rect.right-rect.left,rect.bottom-rect.top,TargetDC,0,0,SRCCOPY);

EndPaint(MainWindow, &ps);

关于c++ - 如何在Win32 C++中复制窗口的可视内容并将其放在新窗口中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14386312/

10-14 19:00