메뉴 건너뛰기

AcroSoft

델파이 강좌 및 팁

 레이몬드 첸의 윈도우 개발 282 스토리를 보니 배경색을 가지는 사각형을 그릴 때 Rectangle이나 FillRect보다 ETO_OPAQUE 옵션을 이용해서 ExtTextOut으로 그리는 것이 더 좋다네요.

 간단하게 테스트 프로그램을 짜서 돌려보니 약 10% 내외의 성능 향상이 있어 보입니다.

코드를 보면 아시겠지만 배경색이 Solid한 경우에만 사용 가능합니다.

procedure DrawSolidRect(ADC : HDC; const ARect : TRect; const AColor : TColor);
var
  clPrev : COLORREF;
begin
  clPrev := SetBkColor(ADC, ColorToRGB(AColor));
  ExtTextOut(ADC, 0, 0, ETO_OPAQUE, @ARect, nil, 0, nil);
  SetBkColor(ADC, clPrev);
end;



위로