Снимок экрана приложения и рендеринг - PullRequest
0 голосов
/ 17 апреля 2009

Я пытаюсь написать простое приложение, которое будет делать снимок экрана приложения, а затем отображать этот снимок в «основном» приложении (то есть в приложении, которое сняло снимок экрана).

Я выяснил, как получить дескриптор окна и получить снимок экрана приложения, но у меня возникают проблемы с отображением захваченного экрана в «главном» приложении.

Используя GDI, у меня есть следующий код для рендеринга:

Bitmap bit(hSrcbmp,hpal);
graphics.DrawImage(&bit,Gdiplus::PointF(0,0));

где hSrcbmp - это растровое изображение захваченного экрана, а графика - это объект GDI + 'Графика'.

Я получаю следующую ошибку после вызова конструктора Bitmap: Gdiplus :: Image = {nativeImage = 0x00000000 lastResult = Win32Error loadStatus = -858993460}

* Использование Visual Studio 2005

* Windows XP

* Visual C ++ (неуправляемый)

Есть идеи?

Еще один вопрос: есть ли лучший подход? C # или DirectX или openGL? Спасибо

1 Ответ

0 голосов
/ 17 апреля 2009

Снимок экрана - это Win32 FAQ на 18 лет.
См. win32 group для стандартного кода (MS и другие), C и C ++

...