2012-06-12 1 views
0

Я использую манифест для стилей XP, поэтому все мои элементы управления используют новый вид. Однако, если я запускаю свою программу в Windows XP, то элементы управления ListView отображаются со старыми плоскими заголовками. Также стиль HDS_NOSIZING не работает для заголовков. Это, по-видимому, означает, что XP использует старую версию Common Controls 5.0 из списка, а не 6.0.XP-Styles не работает для ListView или ComboBox в Windows XP

Я очень смущен об этом. Я читал, что Common Controls 6.00 поставляется с XP, поэтому почему я не могу использовать последний ListView с XP?

Я прочитал на другой странице, что XP-Styles работает только в XP для Common Controls 5.0 ListViews, но не для 6.0. Итак, если он действительно использует 5.0, то не следует ли в любом случае применять новые XP-Styles к listviews?

Возможно ли использовать версию Common Controls 6.0 некоторых элементов управления и версию 5.0 других?

Также еще одна вещь. В XP мои списки рассылки ComboBox отображаются как обычные комбинированные поля, а не как кнопки Buttons, как в Win7. Это нормально?

Спасибо за помощь, так как я нахожу эту концепцию Common Controls 6.0 + XP Styles очень запутанной.

+1

На каком языке? Вызываете ли вы 'InitCommonControls()'? –

+0

«Он работает только на общих элементах v5» - это вещь VB6. Общие элементы управления VB 6 не используют стандартные элементы управления win32 и, следовательно, не поддерживают тему, v5 используют DO стандартные элементы управления win32 и поэтому будут использовать любую версию, указанную в манифесте. – Deanna

ответ

1

Вы надеетесь увидеть стили Windows 7 в Windows XP. Это не сработает. XP будет показать плоские заголовки, HDS_NOSIZING поддерживается только в Vista и выше. Аналогично, комбинированные поля с CBS_DROPDOWNLIST отображаются только как кнопки в Vista и выше.

По всей вероятности, ваша программа работает именно так, как должна, и отображает соответствующие стили XP. Вы можете выполнить двойную проверку с помощью отладчика. Debug + Windows + Modules и посмотрите номер версии загруженного comctl32.dll

Смежные вопросы