Опубликован: 17.08.2010 | Доступ: свободный | Студентов: 999 / 59 | Оценка: 4.11 / 3.89 | Длительность: 29:38:00
Самостоятельная работа 17:

Применение управляющих элементов ActiveX

Визуальное проектирование программы MyCal

Выполним визуальное проектирование диалогового окна, которое будет главным окном приложения.

  • В панели Resource View раскройте узел Dialog. Удерживая клавишу Shift или Ctrl, выделите оба ресурса и через панель Properties русифицируйте их одновременно
  • В панели Resource View выделите ресурс IDD_MYCAL_DIALOG и через контекстное меню выполните команду Open
  • В открывшемся окне дизайнера диалоговых окон отредактируйте главное диалоговое окно, удалив из него все кнопки и статический текст, сгенерированные по умолчанию

Поместить управляющий элемент - календарь на форму диалогового окна можно двумя способами

  1. Предварительно связать его с панелью Toolbox оболочки. В этом случае элемент будет размещен постоянно в панели Toolbox
  2. Одноразово связать его с формой проекта

При реализации первого способа...

  • Откройте вкладку Dialog Editor панели Toolbox и вызовите для нее контекстное меню. Выполните команду Add/Remove Items...


    Откроется диалоговое окно Customize Toolbox


  • Выберите вкладку COM Components и в списке всех зарегистрированных в системе компонентов ActiveX включите нужный компонент календаря. Нажмите кнопку OK и убедитесь, что этот компонент разместился в панели Toolbox. Теперь он будет присутствовать в оболочке постоянно для любого проекта, пока его вновь не удалить таким же способом

При реализации второго способа...

Для одноразового размещения нужного компонента в диалоговой панели следует выполнить следующее:

  • Щелкните на открытом ресурсе диалогового окна правой кнопкой мыши и выполните команду Insert ActiveX Control...

  • В появившемся диалоговом окне из списка зарегистрированных в системе элементов управления выберите нужный ActiveX


    и щелкните по кнопке OK.

В проектируемое диалоговое окно приложения будет помещен управляющий элемент календаря.

После подключения к проекту ActiveX продолжим проектирование приложения.

  • Поместите на диалоговый ресурс две кнопки Button
  • Отредактируйте свойства управляющих элементов главного диалогового окна в соответствии с таблицей

    Свойства элементов управления диалогового окна
    Объект Свойство Значение
    Диалоговое окно ID IDD_MYCAL_DIALOG
    Caption Калькулятор
    Календарь ID IDC_CALENDAR
    BackColor ActiveCaptionText
    Кнопка левая ID IDC_TODAY_BUTTON
    Caption &Today
    Кнопка правая ID IDC_EXIT_BUTTON
    Caption E&xit

Добавление кода

Мы хотим добавить два обработчика для кнопок и одну переменную-экземпляр класса календаря для управления им.

  • В панели Class View выделите класс CMyCalDlg

  • Через контекстное меню или главное меню оболочки Project вызовите мастер добавления переменной, который заполните так


    Мастер сгенерирует соответствующий код. Обратите внимание, что мы указали мастеру разместить код самого калькулятора в отдельных файлах Calendar.h и Calendar.cpp.

  • В файле MyCalDlg.cpp найдите функцию OnInitDialog() и разместите код установки календаря на текущую дату

    Код в функции CMyCalDlg::OnInitDialog()
    BOOL CMyCalDlg::OnInitDialog()
    {
    ................................................
      // TODO: Add extra initialization here
      // Установка календаря на текущую дату
      m_Calendar.Today();
      
      return TRUE;
  • Создайте обработчик кнопки Today и поместите туда такой же код
    Код обработчика кнопки Today
    void CMyCalDlg::OnBnClickedTodayButton()
    {
      // TODO: Add your control notification handler code here
      // Установка календаря на текущую дату
      m_Calendar.Today();
    }
  • Создайте обработчик кнопки Exit и поместите туда код завершения приложения
    Код обработчика кнопки Exit
    void CMyCalDlg::OnBnClickedExitButton()
    {
      // TODO: Add your control notification handler code here
      OnOK();
    }
  • Смените иконку приложения
  • Оформите диалоговое окно About
  • Постройте приложение и убедитесь в его работоспособности

Главное окно приложения должно иметь примерно такой вид



Александр Даниленко
Александр Даниленко
Стоит Windows 8 Pro, Visual Studio 2010 Express Edition .