为什么BitBlt会挂起?

时间:2012-07-19 07:25:39

标签: c++ winapi bitblt

我正在编写C ++代码以自动截取我最喜欢的游戏的屏幕截图。我的部分代码如下所示:

SelectObject(hCDC, shot);
BitBlt(hCDC, 0, 0, WIDTH, HEIGHT, hDDC, 0, 0, SRCCOPY);
SelectObject(hCDC, oldBitmap);
Bitmap shotBitmap(shot, NULL);

我之前已经初始化了相关变量,如下所示:

HDC hDDC = GetDC(handle);
HDC hCDC = CreateCompatibleDC(hDDC);
HBITMAP shot = CreateCompatibleBitmap(hDDC, WIDTH, HEIGHT);
HBITMAP oldBitmap = (HBITMAP) SelectObject(hCDC, shot);

没有明显的原因,代码挂起BitBlt函数,直到某些东西(但我不知道是什么)更新。毫秒我点击游戏中的一个按钮,或点击游戏外的窗口,BitBlt完成,其余代码执行完美。神秘的是,我最近才遇到这个问题;它以前从未发生过。更神秘的是,它只发生在我的笔记本电脑上,而不是我朋友的笔记本电脑上。可能会发生什么?

0 个答案:

没有答案