2013-05-07 1 views
1

Hello Stack Overflow 사용자. CreateCompatibleBitmap()은 검정색을 반환합니다. HBITMAP

#include <windows.h> 
using namespace std; 
int main() {HDC hdc=GetDC(HWND_DESKTOP); HDC MemDC=CreateCompatibleDC(hdc); 
    HBITMAP hBit=CreateCompatibleBitmap(hdc,1366,768); 
    SelectObject(MemDC,hBit); 
    BitBlt(hdc,0,0,1366,768,MemDC,0,0,SRCCOPY); //Screen turns black 
    DeleteObject(hBit); 
    ReleaseDC(HWND_DESKTOP,hdc); 
    ReleaseDC(NULL,MemDC); 
    DeleteDC(MemDC); 
    DeleteDC(hdc); 
} 

내가() CreateCompatibleBitmap 생각 바탕 화면 DC의 1366x768 배경 부분을 반환했지만, 검은 화면이 비트 블리트 후() 표시됩니다 내가 제대로 다음 코드에서 CreateCompatibleBitmap()를 사용하고 있지 않다 것으로 보인다. CreateCompatibleBitmap을 사용하는 대신 비트 맵 파일을 hBit에로드하고 모든 것이 원하는대로 이루어 지므로 문제는 CreateCompatibleBitmap()에서만 발생합니다. 이 기능을 제대로 사용하고 있습니까? 내가해야 할 일을하고 있지 않습니까?

답변

5

CreateCompatibleBitmap 당신을위한 비트 맵을 만들었지 만, 바탕 화면의 일부 또는 다른 것으로 초기화하지 않아도됩니다. 당신은 초기화하지 않고 그것을 바탕 화면에 블 리트하므로, 검은 색은 예기치 않은 것이 아닙니다. 바탕 화면 이미지를 유지하려면 바탕 화면 DC에서 DC로 반대 방향으로 blit해야합니다. 선택한 비트 맵이 선택된 상태 여야합니다.

관련 문제