Поделиться через


Практическое руководство. Размещение элемента управления ActiveX в ресурсе диалогового окна

Обновлен: Ноябрь 2007

При использовании Visual Studio для разработки элементов управления ActiveX для устройств необходимо выполнить некоторые дополнительные действия. Редактор ресурсов зависит от регистрации элемента управления на настольном ПК для обработки этого элемента во время разработки. Кроме того, на настольном компьютере нельзя зарегистрировать элементы управления устройства. Следующие действия являются альтернативным способом разработки. Перед выполнением следующих процедур предполагается, что проект элементов управления ActiveX и проект размещения уже созданы и что элемент управления ActiveX размещается в диалоговом окне.

Aa985040.alert_note(ru-ru,VS.90).gifПримечание.

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

Чтобы добавить элементы управления ActiveX с помощью редактора диалоговых окон

  1. В редакторе диалоговых окон откройте диалоговое окно размещающего проекта.

  2. Перетащите настраиваемый элемент управления из панели элементов в диалоговое окно.

  3. Разместите и задайте размеры для этого элемента управления в диалоговом окне, чтобы это соответствовало необходимому внешнему виду элемента управления ActiveX и формы.

  4. Щелкните правой кнопкой мыши пользовательский элемент управления и выберите пункт Свойства.

  5. В свойстве Класс вставьте идентификатор GUID элемента управления ActiveX. Не забудьте добавить фигурные скобки "{…}".

  6. В обозревателе решений щелкните правой кнопкой мыши файл Имя_проекта.RC2 и щелкните пункт Перейти к коду.

  7. В разделе Добавьте здесь вручную отредактированные ресурсы добавьте приведенный ниже код. Настраиваемый элемент управления нуждается в разделе запуска диалогового окна для корректного отображения. Содержимое фактического раздела запуска диалогового окна не используется. Не забудьте заменить <имя_проекта> на имя вашего проекта.

    IDD_<project name>_DIALOG DLGINIT BEGIN IDC_CUSTOM1, 0x376, 22, 0 0x0000, 0x0000, 0x0800, 0x0000, 0x094d, 0x0000, 0x043d, 0x0000, 0x0013, 0xcdcd, 0xcdcd, 0
    
  8. Постройте и запустите размещающий проект. Не забудьте развернуть и зарегистрировать элемент управления ActiveX на конечном устройстве.

Чтобы использовать альтернативный метод размещения элементов управления ActiveX

  1. Зарегистрируйте класс окна AtlAxWin80 посредством вызова AtlAxWinInit в любой точке приложения.

    Приложения ATL делают это в коде инициализации модуля. Приложения Win32 должны вызвать эту функцию из функции WinMain. Для приложений MFC выполните следующие шаги:

    1. Щелкните правой кнопкой мыши узел проекта в обозревателе решений и щелкните Добавить, а затем Класс.

    2. Щелкните пункт Добавить в MFC поддержку ATL (под заголовком "Смарт-устройства").

    3. Добавьте вызов AtlAxWinInit в верхнюю часть метода InitInstance класса размещающего приложения.

  2. В ресурсе диалогового окна (например, элемент управления диалогового окна ATL или составной элемент управления, а также диалоговое окно ATL) выполните следующие действия:

    1. Перетащите настраиваемый элемент управления из панели элементов.

    2. Задайте свойство класса окна, равным AtlAxWin80.

    3. Задайте заголовок для идентификатора GUID в фигурных скобках или для progid.

  3. Для MFC добавьте atl.lib в качестве дополнительного входного файла link.

  4. Для MFC добавьте следующие строки в параметр Развертывание | Дополнительные файлы. Несмотря на то, что уже имеются строки для динамических библиотек, необходимо добавить эти строки для статических библиотек MFC.

    msvcr80.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\$(ProjectName)|0
    atl80.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\$(ProjectName)|0
    msvcr80d.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\$(ProjectName)|0
    

См. также

Другие ресурсы

Программирование для устройств на языке Visual C++