Проблема с элементом управления ssOption в VB6: цвет фона текста меняется с Win 98 на Win XP

Я использую элемент управления ssOption (элемент управления Sheridan 3d Option) в VB6.

В Windows 98 цвет фона текстовой области совпадает с цветом фона вокруг круга выбора, и этот цвет является цветом формы по умолчанию. Таким образом, кнопка Option кажется прозрачной.

Свойство цвета фона отсутствует, а в Windows XP цвет фона текстовой области отличается от цвета фона вокруг круга параметров.

Любые идеи относительно того, почему это произойдет? Оболочка элемента управления находится в файле Threed32.ocx, и у меня есть одна и та же его версия в каталоге Windows\system32 как в системах Win98, так и в системах WinXP.

  1. Почему он может вести себя по-разному на 98 и XP?
  2. Есть идеи по исправлению?

vb6
person Clay Nichols    schedule 26.11.2008    source источник


Ответы (3)


SSOption устанавливает фон на лицевую сторону кнопки Windows в Windows XP. Это тот же фон, который вы получаете, когда создаете новую форму. Вам нужно будет использовать рамку или другой тип корпуса с фоном в виде кнопки, если вы хотите использовать его на разноцветной форме. В противном случае используйте кнопку Option VB6.

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

Если вы не можете использовать ограждающую раму или панель, у вас есть утомительная альтернатива. Вы можете сделать вариант VB6 без текста. Если вы используете 3D-шрифт. Затем вы можете использовать две метки для достижения того же эффекта. Сделайте нижнюю часть белой (или верхнюю, в зависимости от приподнятой или встроенной) и сместите на один пиксель или 15 твипов.

Вы можете использовать инструмент ZoomIn, если вы установили VB6 как часть пакета Visual Studio 6, чтобы убедиться, что он правильный.

Если вы используете его для выравнивания. Затем вы можете возиться с шириной собственного элемента управления параметрами VB6, пока он не будет выглядеть правильно, или сделать параметр без текста и использовать метку.

person RS Conley    schedule 26.11.2008

Threed32.ocx древний - он был разработан для VB4. Я бы заменил его встроенным регулятором опций VB6.

person Alex Warren    schedule 26.11.2008
comment
Замена не является полным ответом, поскольку опция SS имеет функции, отличные от собственного элемента управления опцией VB6. - person RS Conley; 26.11.2008
comment
Вынужден согласиться с Алексеем. Threed32.ocx не поддерживается в Vista и XP x64 и не рекомендовался Microsoft, начиная с VB4 (VB5 включил большую часть своих функций в собственный элемент управления параметрами). - person rpetrich; 26.11.2008
comment
Элемент управления опцией VB5/6 не делает всего, что делает SSOption. А именно в выравнивании текста, когда кнопка выбора находится справа и 3D-шрифты. Полный ответ даст альтернативы. - person RS Conley; 26.11.2008
comment
Верно, но все равно полезно. Ваш ответ бесполезен, потому что он не объясняет нюансы порядка вкладок, фокуса и проблем с щелчками мыши при замене ssOption на собственный вариант? Нет, конечно нет; оба полезны. Ответ Алекса актуален и может быть использован для предоставления контекста. - person rpetrich; 29.11.2008

Алекс прав. Threed32.ocx устарел и имеет ряд проблем. Он не поддерживается в Vista, он перехватывает фокус, когда становится видимым, сложно перейти на VB.NET — их больше. Для моей компании они достаточно сильны, чтобы перевесить дополнительную функциональность, которую они дают — мы исключаем их из всех наших программ.

person MarkJ    schedule 04.02.2009