Каков правильный источник для компонента Windows Common Controls 6.0 (MSCOMCTL.OCX)? - PullRequest
10 голосов
/ 04 августа 2009

Я экспериментирую с написанием элементов управления ActiveX и заметил, что не могу создать элемент управления ActiveX в Visual Basic (6.0), который имеет немного более сложные элементы управления. Простые элементы управления, такие как метки, кнопки и флажки, работают нормально, но как только я пытаюсь добавить, например, древовидный элемент управления для моей формы, элемент ActiveX остается полностью пустым, как только я встраиваю его в какое-либо хост-приложение на другом компьютере. Он отлично работает на моем компьютере для разработки.

Проходя по списку Projects-> Components (Ctrl + T), я обнаружил две библиотеки, которые, очевидно, содержат элемент управления деревом:

  • Microsoft Windows Common Controls 5.0 (SP2)
  • Общие элементы управления Microsoft Windows 6.0 (SP6)

Как только я добавляю в форму какие-либо элементы управления из этих библиотек, форма остается полностью серой, если она встроена в другой компьютер. Другой компьютер - система Windows XP, поэтому я надеялся, что отсутствие распространяемых файлов не будет проблемой, учитывая, сколько лет Visual Basic 6. Конечно, я установил распространяемые файлы VB6, но, к сожалению, это ничего не изменило.

Кто-нибудь знает, почему мой элемент управления ActiveX будет оставаться серым на других компьютерах, но не на моем, как только я добавлю в форму какие-либо элементы управления из вышеуказанных библиотек? FWIW Мне просто нужен древовидный элемент управления, так что если есть какая-то другая, более подходящая библиотека - это нормально для меня.

UPDATE: Как оказалось, это помогает загрузить MSCOMCTL.OCX в C: \ WINDOWS \ SYSTEM32 на другом компьютере, а затем зарегистрировать его с помощью regsvr32 C:\WINDOWS\SYSTEM32\MSCOMCTL.OCX. Тем не менее, я не нашел официального источника для этого файла, и запуск регистрации COM вручную кажется мне обременительным. Разве нет распространяемого файла, который я мог бы использовать?

Ответы [ 2 ]

10 голосов
/ 04 августа 2009

Среда выполнения VB6 предустановлена ​​на XP и выше, но компонент Common Controls, на который вы ссылаетесь, не является.

Попробуйте установить Общие элементы управления Microsoft Visual Basic 6.0 , распространяемые на клиентских компьютерах или событии, лучше настройте приложение.

Edit:

Opps, ссылка предназначена для обновления, которое не устанавливает OCX, если оно еще не установлено. Единственный распространяемый файл - это модуль слияния для установщика Windows.

1 голос
/ 03 апреля 2013

Чтобы решить эту проблему, я разработал пакет MSI. Исходные файлы (WiX) и ставки размещены здесь: https://github.com/IT-Service/ITG.VB6CommonControlsRedist

...