문제

MSDN 에 대해 다음을 표시합니다 CreatePatternBrush:

삭제할 수 있습 패턴의 브러쉬없이 에 영향을 미치는 관련된 비트맵 를 사용하 DeleteObject 기능입니다.따라서를 사용하여 다음을 수행할 수 있습니이 비트맵 번호를 만들의 패턴 브러쉬가 있습니다.

나의 질문은 반대입니다.는 경우 HBRUSH 은 오래 살았,삭제할 수 있습니 HBITMAP 후에 바로 만들의 브러시는?IE:가 HBRUSH 저장 자체의 복사본을 HBITMAP?

이 경우에는,내가 좋아하는 것 HBRUSH 을 개체 범위하는 동안 HBITMAP 가 방법을 범위(를 만드는 방법 HBRUSH).

도움이 되었습니까?

해결책

이 HBRUSH 및 HBITMAP 는 전적으로 독립적이다.손잡이 삭제할 수 있는 전적으로 서로 독립적이며,한 번 생성 후 변경하지 않거나 물체에 영향을 것입니다.

다른 팁

브러시가 자신의 복사본을 비트맵.이것은 쉽게 참여 삭제합 비트 맵을 생성한 후에는 브러시와 다를 사용하는 브러시(작동)

를 사용하여할을 채우기 위해 LOGBRUSH 구조를 반환 비트맵 원래의 처리에서 회원 lbhatch 지만,그리고 복사 핸들도해 보시기 바랍니다.고 사용할에 반환되는 비트맵 핸들이 실패하는 경우 비트맵은 삭제됩니다.

누구나 어떤 아이디어를 얻는 방법 원본 비트맵 차원에서 브러쉬를 이 경우에는?나는 복사본을 만들 패턴의 브러시더라도 원본을 비트맵은 삭제됩니다.나는 사본을 얻을 수 있습니다 원래의 비트맵 단순히 그림으로,브러시 모르겠지만 그것의 크기입니다.용 SetbrushorgEx(hdc,-1,-1),기대 -1 의 것을 감소 모듈의 차원을 때는 브러시로 선택한 장치의 상황과 값을 얻을 때 나는 검색을 가진 GetBrushOrgEx.이 작동하지 않습니다.

내가 생각하는 비트맵해 오래 살 솔:브러쉬를 참조하는 기존의 비트맵보다 복사하다.

당신은 항상 그것을 시도 무슨 일이 있었는지를 참조하십시오.

내가 심는 CreatePatternBrush()API 복사본을 비트맵 당신이 그것을,이후에는 HBITMAP 입니다:

  1. GDI 처리의 최대 개수를 제한되는,그리고
  2. 잠재적으로 매우 크다.

Win32 및 GDI 보수적 인 경향이 만들기에 대한 내부 데이터의 복사본을 경우에만 있기 때문에,경우의 대부분은 그들의 Api 만들어졌(CreatePatternBrush()날짜를 Windows95,그리고 많은 기능은 이상은 여전히),메모리고 GDI 처리에 있었다 훨씬 더 제한된 공급을 그들이 지금보다.(예를 들어,윈도우 95 를 실행하는 데 필요한 잘 시스템에서만 4MB RAM.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top