2010-04-05 6 views
0

커스텀 드로잉이 많은 곳에서 컨트롤을 쓰고 있습니다. 이 때문에 나는 "화면 쓰기"의 양을 줄일 필요가 있습니다. 현재 컨트롤을 다시 그릴 때 깜박임 현상이 나타나지 않도록 화면에 쓰는 데 사용되는 메모리 DC는 하나뿐입니다. 두 개 이상의 메모리 DC를 사용하여 업데이트를 독립적으로 작성한 다음 화면에 bitblt 할 수 있는지 알고 싶습니다. 이렇게하면 화면의 변경되지 않은 부분을 렌더링 할 필요가 최소화됩니다.2 개의 메모리 DC를 결합 하시겠습니까?

답변

0

여러 DC를 사용할 수 있지만 모두 동일한 비트 맵에 쓰는 것이 좋습니다. 이 경우 '마지막으로 쓰기가 유리합니다'정책이 적용됩니다. 즉, 비트 맵의 ​​특정 지점에 마지막으로 기록하면 최종 사진에 표시됩니다.

이렇게하면 화면이 축소 된 방식으로 사용자에게 이익이되지는 않습니다. OTOH의 경우 일반적으로 BitBlt이 빠르지 만 큰 차이는 없을 것입니다.

0

원하는만큼의 DC를 만들 수 있으며, 화면의 일부분을 준비하고, BitBlt()의 내용을 다른 DC로 보내고, 다음에 BitBlt()를 화면에 표시하거나 또는 당신은 (핸들의 nr의 Windows 제한 내에서 분명히) 원하는.

속도 향상을 기대하기는 어렵지만 위의 의견에 동의합니다. 내가 사용하는 곳은 때로는 영역이 복잡 할 때입니다. 즉, 업데이트 할 영역은 부분적으로 많은 위치 계산을 저장할 수 있습니다.

관련 문제