OwnerDraw с WS_EX_COMPOSITED под XP

У меня есть статический контроль, который имеет SS_OWNERDRAW а также SS_NOTIFY флаг, когда ящик Его родительское окно имеет WS_EX_COMPOSITED флаг.

В Windows XP он отображается неправильно, как показано на рисунке ниже (правый верхний прямоугольник):

введите описание изображения здесь

Но под Windows 7 он нарисован правильно, как показано на рисунке ниже (символ «X» справа вверху):

введите описание изображения здесь

Как исправить эту проблему в XP? Кроме того, что вызывает эту проблему (в XP)?

2

Решение

MSDN для CreateWindowEx() говорит это:

С установленным WS_EX_COMPOSITED все потомки окна получают
порядок рисования снизу вверх с использованием двойной буферизации. Снизу-вверх
порядок рисования позволяет прозрачному окну иметь прозрачность (альфа)
и эффекты прозрачности (цветовой ключ), но только если потомок
В окне также установлен бит WS_EX_TRANSPARENT. Двойная буферизация позволяет
Окно и его потомки должны быть нарисованы без мерцания.

То есть ребенок STATIC контроль должен иметь WS_EX_TRANSPARENT задавать.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]