У меня есть статический контроль, который имеет SS_OWNERDRAW
а также SS_NOTIFY
флаг, когда ящик Его родительское окно имеет WS_EX_COMPOSITED
флаг.
В Windows XP он отображается неправильно, как показано на рисунке ниже (правый верхний прямоугольник):
Но под Windows 7 он нарисован правильно, как показано на рисунке ниже (символ «X» справа вверху):
Как исправить эту проблему в XP? Кроме того, что вызывает эту проблему (в XP)?
MSDN для CreateWindowEx()
говорит это:
С установленным WS_EX_COMPOSITED все потомки окна получают
порядок рисования снизу вверх с использованием двойной буферизации. Снизу-вверх
порядок рисования позволяет прозрачному окну иметь прозрачность (альфа)
и эффекты прозрачности (цветовой ключ), но только если потомок
В окне также установлен бит WS_EX_TRANSPARENT. Двойная буферизация позволяет
Окно и его потомки должны быть нарисованы без мерцания.
То есть ребенок STATIC
контроль должен иметь WS_EX_TRANSPARENT
задавать.
Других решений пока нет …