Я пытаюсь захватить экран дочернего окна и отобразить его на родительской поверхности в Windows 7.
HTHUMBNAIL thumbnail = NULL;
HRESULT hr = S_OK;
hr = DwmRegisterThumbnail( hWnd, visualHwnd, &thumbnail );
if( SUCCEEDED( hr ) )
{
...
}
Это терпит неудачу все время. visualHwnd является дочерним окном, а hWnd является родительским. Я также попробовал это без отношения родитель-потомок, и он просто ничего не рисует, что вполне ожидаемо, потому что, если оператор потерпит неудачу.
В чем может быть причина?
Вот как я создаю родителя:
hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
И ребенок:
CreateProcessA( NULL, "PVFOX.exe \"view3.pv\" ", NULL, NULL, FALSE, CREATE_NO_WINDOW, NULL, NULL, &si, &piVisual);
WaitForInputIdle( piVisual.hProcess, INFINITE );
Sleep( 3000 );
EnumWindows(EnumWindowsProc, 0);
SetParent(visualHwnd, hWnd);