2011-10-01 7 views
0

우선 : 저는 GDI를 처음 접했기 때문에 오해하는 경우 용서해주십시오 (알려주세요).비트 맵에 페인트하는 법

내가 할 노력하고있어 : 내가 (비트 맵으로 대신 BeginPaint 함수로 화면에 내 WM_PAINT 코드 페인트를 수 있도록 노력하고 ). 또한 비트 맵을 화면에 표시하는 동시에 그 위에 다른 데이터를 표시하고 싶습니다 (비트 맵에 저장되지 않음).

누구나 win32 함수와이를 구현하는 데 필요한 데이터 유형을 말할 수 있습니까? 감사합니다.

+0

http://msdn.microsoft.com/en-us/library/ms908165.aspx –

답변

1

우선, 귀하의 창 이외의 다른 곳으로 페인팅하려면 새로운 DC가 필요합니다. HDC memDC = CreateCompatibleDC([your window hdc]);을 사용하여 만들 수 있습니다.

이제 페인트 할 비트 맵이 필요합니다. HBITMAP memBitmap = CreateCompatibleBitmap ([your window hdc],[your window width],[your window height]);을 사용하십시오 (같은 크기를 원한다면, StretchBlt은 트릭을해야합니다).

사용을 마쳤 으면 정리하려면 DeleteObject (memBitmap);DeleteDC (memDC);해야합니다.

만들어지면 SelectObject (memDC, memBitmap);

지금 memDC에 드로잉을 모두 수행하여 DC 오프 스크린을 통해에 비트 맵을 선택합니다. 끝나면 BitBlt() 함수를 소스 hdc를 memDC로, 대상 hdc를 윈도우의 DC로 사용하십시오. 당신이 만든 것을 삭제하는 것을 잊지 마십시오.

+0

CreateCompatibleBitmap()을 사용하여 장치 컨텍스트와 호환되는 비트 맵을 만들어야하기 때문에 ... 프로그램에서 사용자가 파일에서 비트 맵을로드합니다. 그 비트 맵을 어떻게 호환 가능하게 만들 수 있습니까? – xcrypt

관련 문제