NateOn 프로그램이 현재 최소화 되어있는데요
HWND hWnd = FindWindow(NULL, \"NateOn\");
이렇게 네이트온 프로그램의 핸들을 얻어서
네이트온의 DC 를 얻은후에 현재 어플리케이션의 윈도우에 출력하는 코드를 짰거든요, 근데 계속 현재 활성화된 윈도우의 캡쳐된 화면만 뜨더라구요
코드가 잘못된건 아닌거 같은데.. 원래 현재 최소화된 윈도우는 핸들을 얻었다 하더라도 DC 에서 화면정보를 읽을 수 없는 것인가요?
이건 코드입니다.
CPaintDC dc(this);
CDC *deskDC;
CDC deskMem;
CWnd *deskWnd = FromHandle(::FindWindow(NULL, \"NateOn\"));
deskDC = deskWnd->GetDC();
CRect rect;
CBitmap bitmap;
::GetWindowRect(deskWnd->m_hWnd, &rect);
deskMem.CreateCompatibleDC(deskDC);
bitmap.CreateCompatibleBitmap(deskDC, rect.Width(), rect.Height());
CBitmap *oldBitmap = deskMem.SelectObject(&bitmap);
deskMem.BitBlt(0, 0, rect.Width(), rect.Height(), deskDC, 0, 0, SRCCOPY);
dc.BitBlt(0, 0, 500, 500, &deskMem, 0, 0, SRCCOPY);
DC 내용이 없는데 뭘 읽어오나여
최소화 된 프로그램에는 프로세스가 할당되지않아서 DC고 뭐고 얻을수 없을텐데염...
최소화 되어도 프로세스는 살아있지.
\"윈도우즈는 바탕화면 크기만한 비트맵 이미지를 관리하는 프로그램이다\" 라고 이해하면 쉬워. 비트맵 이미지에 그려져 있는것들만 캡쳐할 수 있는거야.