Использование ActiveX-элемента в приложении

   
На этом шаге мы рассмотрим пример использования элемента управления в приложении.

   
В шагах 141-144 демонстрировалось, как приложение STUpload применяет два
ActiveX-элемента, Microsoft ADO Data Control и Microsoft DataGrid Control, в качестве составных
частей пользовательского интерфейса. Мы не будем добавлять в приложение STUpload никаких новых
ActiveX-элементов. Вместо этого мы научимся использовать созданный в предыдущих шагах элемент управления
OneArmedBandit как часть Windows-приложения. Это приложение мы назовем VirtualSlot.

   
Приложение вызывает предоставляемый OneArmedBandit метод Рlау() и обрабатывает событие Jackpot.
В процессе создания приложения мы обратимся к странице свойств для задания числа отображаемых картинок и цветов элемента управления.

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

  • Скопируйте файл OneArmedBandit.ocx в подходящий каталог на жестком диске.
  • Выйдите в командную строку и перейдите в каталог с файлом OneArmedBandit.ocx.
  • Введите следующую команду, чтобы зарегистрировать элемент управления на своем компьютере:
      regsvr32 onearmedbandit.ocx
    
  •    
    Теперь переходим к созданию приложения VirtualSlot.

    • Создание проекта VirtualSlot.
    • В Visual C++ в меню File выберите команду New.
    • Выберите MFC AppWizard (exe) и создайте новый проект с именем VirtualSlot. Щелкните ОК.
    • В окне 1 AppWizard выберите Dialog Based и затем щелкните Finish.
    • Щелкните OK, чтобы завершить создание проекта.
    •    
      В редакторе диалогов появится шаблон диалога IDD_VIRTUALSLOT_DIALOG. На его основе мы сформируем
      интерфейс приложения VirtualSlot, состоящего из одного элемента управления OnArmedBandit и
      кнопок Play и Close.

    • Модификация шаблона диалога IDD_VIRTUALSLOT_DIALOG.
    • Удалите строку с комментарием // TODO.
    • Измените заголовок кнопки ОК на Close. Назначите кнопке Cancel новый идентификатор
      ID_PLAY и измените ее заголовок на Play.
    • Переставьте кнопки в соответствии с рисунком 1.
      Рис.1. Внешний вид приложения
    • Добавление в проект элемента управления OneArmedBandit.
    • В меню Project выберите команду Add to Project и затем щелкните Components and Controls.
    • В Components and Controls Gallery дважды щелкните папку Registered ActiveX Controls, чтобы
      отобразить все зарегистрированные на Вашей системе ActiveX-элементы.
    • Щелкните OneArmedBandit и затем - Insert.
      Рис.2. Добавление элемента OneArmedBandit
    • Щелкните ОК, чтобы вставить компонент. Снова щелкните ОК,
      подтверждая создание класса элемента управления COneArmedBandit.
    • Щелкните Close, чтобы закрыть Components and Controls Gallery.
    •    
      Обратите внимание, что в панели инструментов Controls появился стандартный ОСХ-значок для
      элемента управления OneArmedBandit.


      Рис.3. Значок ОСХ

         
      В MFC-проекте OneArmedBandit, есть битовая карта IDB_ONEARMEDBANDIT. Вы можете
      отредактировать ее, чтобы создать кнопку для панели инструментов.

         
      В ClassView появится класс COneArmedBandit, сгенерированный Components and Controls Gallery. Он содержит
      функции-оболочки, предоставляющие доступ к свойствам и методам элемента управления. Функция Create() позволяет
      динамически создавать экземпляр элемента управления (например, в объекте CView).

    • Размещение элемента управления COneArmedBandit.
    • Щелкните кнопку OneArmedBandit на панели инструментов Controls и поместите элемент управления в диалоговое окно.
      Измените размеры элемента и диалогового окна так, чтобы они выглядели так, как показано на рисунке 4.


      Рис.4. Размещение элемента управления

    • Выбрав элемент управления OneArmedBandit, нажмите ENTER, чтобы отредактировать его свойства.
      Наряду со страницами свойств General и All, реализованными контейнером, появятся уже знакомые страницы.


      Рис.5. Окно свойств элемента управления

    • На странице General измените идентификатор элемента управления на IDC_ONEARMEDBANDIT1.
    • На странице Control задайте в Number of Symbols значение 7.
    • На странице Colors выберите цвета ForeColor и BackColor.
    •    
      Сейчас в диалоговом классе CVirtualSlotDlg мы реализуем кнопку Play и обработку события Jackpot.

    • Реализация кнопки Play.
    • Нажмите CTRL+W, чтобы открыть ClassWizard. На вкладке Member Variables щелкните
      идентификатор элемента управления IDC_ONEARMEDBANDIT1. Нажмите Add Variable, чтобы создать
      в нем переменную-член m_bandit типа COneArmedBandit.


      Рис.6. Создание переменной m_bandit

    • На странице Message Maps щелкните идентификатор объекта ID_PLAY. Создайте обработчик
      сообщения BN_CLICKED с именем ОnРlау().


      Рис.7. Создание обработчика

    • Щелкните Edit Code и измените тело функции ОnРlау(), заменив строку с комментарием
      // TODO следующим текстом:

        m_bandit.Play();
      
    • Обработка события Jackpot.
    • На вкладке Message Maps ClassWizard щелкните идентификатор элемента управления
      IDC_ONEARMEDBANDIT1.
    • Щелкните сообщение Jackpot и затем - Add Function, чтобы создать функцию
      OnJackpotOnearmedbandit1().


      Рис.8. Создание функции OnJackpotOnearmedbandit1()

    • Щелкните Edit Code и измените тело функции OnJackpotOnearmedbandit1(), заменив строку с
      комментарием // TODO следующим текстом:

          AfxMessageBox("Jackpot!");
      
    • Теперь Вы можете собрать и запустить приложение VirtualSlot. Щелкните кнопку Play, чтобы
      сыграть в "однорукого бандита". Продолжайте игру, пока не выпадет джекпот.


      Рис.9. Результат работы приложения

       
    Текст приложения можно взять здесь (30,2 Кб).

       
    Со следующего шага мы начнем знакомиться с созданием приложений для Интернета.



    Вы можете оставить комментарий, или Трекбэк с вашего сайта.

    Оставить комментарий