Как заставить перерисовать только фон, чтобы элемент управления не перерисовывал его снова? - PullRequest
0 голосов
/ 21 июня 2019

Этот вопрос был создан в ответ на другой вопрос: Общие элементы управления в прозрачном окне? .

По-видимому, есть способ только закрасить фон без повторной рисования самого элемента управления. Это решило бы проблему наличия общих кнопок управления на прозрачном фоне.

Итак, мой вопрос: как нарисовать только фон вокруг общего элемента управления после того, как общий элемент управления закрасился?

1 Ответ

1 голос
/ 21 июня 2019

О том, как перерисовать видимые границы.

Округлый прямоугольник, нарисованный RoundRect, используется в качестве представителя

Функция FrameRgn рисует границу вокруг указанной области с помощью указанной кисти.

Простая демонстрация кода:

HRGN hRegion = ::CreateRoundRectRgn (0, 0, ClientWidth, ClientHeight,12,12);
Canvas->Brush->Style = bsSolid;
Canvas->Brush->Color = RGB(96, 96, 96);
::FrameRgn(Canvas->Handle, hRegion, Canvas->Brush->Handle, 2, 2);
::DeleteObject(hRegion); // Don't leak a GDI object

Ссылка вам нужна: Перерисовать границу

...