SWT setForeground в Windows 7 против Windows XP - PullRequest
3 голосов
/ 01 июня 2011

У нас есть приложения SWT, которые используют метод setForeground в Windows XP, и они работают нормально.Тем не менее, запуск самых последних стабильных SWT-файлов и библиотек на Win7, похоже, показывает, что метод setForeground игнорируется.Я знаю, что Javadoc говорит, что это подсказка, но я хотел знать, происходит ли это из-за того, что что-то изменилось между XP и 7, или, если возможно, это системная настройка в моей новой установке Win7.

Я нашел этоpost: Как установить цвет переднего плана кнопки SWT? , но основной ответ однозначно говорит, что setForeground игнорируется в Windows, что не так в XP.Кроме того, наша проблема не ограничивается кнопками.Аналогичные проблемы случаются и с группами.

Screenshot Comparison

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

Спасибо за любую помощь.

Ответы [ 2 ]

1 голос
/ 14 июня 2011

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

Для получения дополнительной информации см. этот отчет об ошибке .

0 голосов
/ 15 июля 2011

Дальнейшие исследования показывают, что это не разница между XP и Windows 7, а скорее тема Classic против темы Aero или XP. Если мы используем тему XP в XP, передний план кнопки также не может быть установлен.

...