Почему для WM_ERASEBKGND есть отдельное сообщение

StackOverflow https://stackoverflow.com/questions/9467277

  •  13-11-2019
  •  | 
  •  

Вопрос

Я никогда не понял, почему стирание фона имеет отдельное сообщение Windows.Я выгляжу немного избыточным для меня.Когда я создал нарисованные над владельцем кнопок, я всегда заканчивался стиранием фона изнутри wm_paint.Я иногда даже делал всю картину изнутри WM_ERASEBKGND и оставил WM_Paint пустой.Оба, кажется, работают нормально.Есть ли преимущество, чтобы отделить картину на 2 операции?

Это было полезно?

Решение

Это целиком догадки:

Вернуться в старые дни, заполнение прямоугольника с цветом была относительно медленной операцией.Но наполнение одного большого прямоугольника было еще быстрее, чем наполнение много маленьких прямоугольников.

Я думаю, что если у вас было окно с дочерним окном, и оба имели одну и ту же зарегистрированную фоновую кисть, то Windows была достаточно умной, чтобы понять, что ему не нужно отправлять WM_ERASEBKGND к ребенку, когда он уже очистилродитель.С помощью умеренно сложного диалогового окна на очень медленном ПК это может быть значительным улучшением.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top