2011-12-31 4 views
2

У меня есть большая проблема, которую я не могу решить.Плохое визуальное поведение с расширенным GlassFrame

я редактирую вопрос для того, чтобы упростить то, что происходит на самом деле:

  1. Создание пустой приложения Delphi (я попробовал это в 2007 году)

  2. В форме конструктора (From.Create) Тип:

    GlassFrame.Enabled := True; 
    GlassFrame.Bottom := 50; 
    

Это должно расширить Windows Aero тему.

Теперь попробуйте изменить размер окна, и вы заметите плохое поведение; черная часть, которая выглядит довольно уродливо.

Является ли эта ошибка Windows или?

Я пробовал то же самое в MS VC, используя вызовы API, но результаты одинаковы.

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

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

+1

Вы не оставили ни одного кода, так что трудно сказать, в чем проблема. Вы также отметили его 'C++' и' Delphi', но опубликовали код или текст, который не относится ни к одному из них. Можете ли вы изменить свой вопрос, чтобы уточнить, на каком языке вы используете, и добавить код, который показывает, что вы пытаетесь сделать? Благодарю. :) –

+0

Вы можете попробовать это очень просто, поэтому я не привел ни одного примера: 1) Создать проект Delphi 2) На основной форме Включить GlassFrame 3) Установите снизу (в секцию GlassFrame), чтобы сказать 50 4) Начните и попробуйте изменить размер Проверьте, что происходит с фоном. Я пробовал это в D2007, также пробовал его в некоторых старых MS VS, но я не думаю, что он исправлен в новой версии, но это ошибка, вызванная Window. Возможно, я ошибаюсь и надеюсь, что я ошибаюсь в этом приложении, выглядит ужасно! Спасибо за помощь! –

+0

Опять, ** можете ли вы изменить свой вопрос **, чтобы предоставить дополнительную информацию (включая инструкции из вашего комментария)? Как и сейчас, его, вероятно, следует закрыть как «не настоящий вопрос». –

ответ

0

DoubleBuffered := True исправляет черный сбой.

+1

К сожалению, это то же самое .. :( –

+0

Установили ли вы 'DoubleBuffered' на' True' on Construction или когда форма уже видна? Насколько я знаю, вы не можете изменить свойство DoubleBuffered, когда отображается форма. – LaKraven

+0

Я устанавливаю его в FormCreate. Это событие должно быть вызвано в конструкторе. Так что перед WM_SHOW. –