Стоит Windows 8 Pro, Visual Studio 2010 Express Edition . |
Опубликован: 17.08.2010 | Доступ: свободный | Студентов: 1001 / 59 | Оценка: 4.11 / 3.89 | Длительность: 29:38:00
Тема: Программирование
Специальности: Программист, Архитектор программного обеспечения
Теги:
Самостоятельная работа 18:
Создание собственного элемента управления ActiveX
< Самостоятельная работа 17 || Самостоятельная работа 18: 1234567891011 || Самостоятельная работа 19 >
Добавление ассоциированных переменных к элементам управления
- Добавьте для элементов управления диалогового окна приложения ассоциированные переменные в соответствии с таблицей ниже
- Для каждого элемента управления вызывайте мастер Add Variable через контекстное меню для этого элемента
-
Следите за тем, чтобы флажок Control variable окна мастера быть включен
Инициализация ассоциированных переменных
Инициализацию ассоциированных переменных выполним в функции OnInitDialog() класса CTestDlg.
- Откройте файл TestDlg.cpp тестового приложения
-
Найдите и дополните функцию OnInitDialog() следующим кодом
Дополнение функции OnInitDialog() BOOL CTestDlg::OnInitDialog() { CDialog::OnInitDialog(); .......................................... // TODO: Add extra initialization here // Переменные для элементов управления тестового приложения m_bCheckBeep = false; m_bCheckStart = true; m_iSwapColor = 0; m_ComboColor.AddString("Черный"); m_ComboColor.AddString("Синий"); m_ComboColor.AddString("Зеленый"); m_ComboColor.AddString("Бирюзовый"); m_ComboColor.AddString("Красный"); m_ComboColor.AddString("Сиреневый"); m_ComboColor.AddString("Желтый"); m_ComboColor.AddString("Белый"); m_ComboColor.SetCurSel(0); long tmp = m_MyClock.GetUpdateInterval(); m_sShowInterval.Format("%ld", tmp); m_SliderInterval.SetRangeMin(1000); m_SliderInterval.SetRangeMax(5000); UpdateData(FALSE); // Выдать значения на экран return TRUE; // return TRUE unless you set the focus to a control }
Построение обработчиков
-
Постройте обработчик для кнопки Выход и заполните его так
Обработчик для кнопки 'Выход' void CTestDlg::OnBnClickedButtonExit() { // TODO: Add your control notification handler code here OnOK(); }
-
Постройте обработчик для кнопки About Часов и заполните его так
Обработчик для кнопки 'About Часов' void CTestDlg::OnBnClickedButtonAboutclock() { // TODO: Add your control notification handler code here m_MyClock.AboutBox(); }
-
Постройте обработчик для флажка Звуковой сигнал и заполните его так
Обработчик для флажка 'Звуковой сигнал' void CTestDlg::OnBnClickedCheckBeep() { // TODO: Add your control notification handler code here // Получить текущее значение от экрана UpdateData(TRUE); // Проверить значение флажка и установить режим Beep if(m_bCheckBeep == TRUE) m_MyClock.BeepClock(1); else m_MyClock.BeepClock(0); }
-
Постройте обработчик для флажка ' Ход часов ' и заполните его так
Обработчик для флажка 'Ход часов' void CTestDlg::OnBnClickedCheckStart() { // TODO: Add your control notification handler code here // Получить текущее значение от экрана UpdateData(TRUE); // Проверить значение флажка и Остановить/Запустить часы if(m_bCheckStart == TRUE) m_MyClock.StartClock(); else m_MyClock.StopClock(); }
-
Постройте обработчик для раскрывающегося списка выбора цвета, добавив в проект таблицу цветов и код. Для этого выделите элемент IDC_COMBO_COLOR и в панели свойств найдите событие CBN_SELCHANGE
Обработчик для раскрывающегося списка void CTestDlg::OnCbnSelchangeComboColor() { // TODO: Add your control notification handler code here // Таблица цветов COLORREF colors[8] = { RGB( 0, 0, 0), RGB( 0, 0, 255), RGB( 0, 255, 0), RGB( 0, 255, 255), RGB(255, 0, 0), RGB(255, 0, 255), RGB(255, 255, 0), RGB(255, 255, 255) }; // Получить текущее значение от экрана UpdateData(TRUE); int index = m_ComboColor.GetCurSel(); if(m_iSwapColor == 0) m_MyClock.SetForeColor(colors[index]); else m_MyClock.SetBackColor(colors[index]); }
Для управления ползунком необходимо связать сообщение Windows WM_HSCROLL с методом OnHScroll() (сообщение WM_VSCROLL и метод OnVScroll() - для вертикальных ползунков.
- Постройте обработчик для ползунка. Для этого выделите форму IDD_TEST_DIALOG
- Перейдите в панель Properties и установите режим Messages
- Найдите сообщение WM_HSCROLL и создайте для него обработчик OnHScroll()
-
Обработчик заполните следующим кодом
Обработчик для ползунка void CTestDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { // TODO: Add your message handler code here and/or call default int pos = m_SliderInterval.GetPos(); m_sShowInterval.Format("%d", pos); UpdateData(FALSE); m_MyClock.SetUpdateInterval((long)pos); CDialog::OnHScroll(nSBCode, nPos, pScrollBar); }
- Оформите About тестового приложения
- Постройте приложение и убедитесь в правильности его работы
Внешний вид приложения должен выглядеть примерно так
< Самостоятельная работа 17 || Самостоятельная работа 18: 1234567891011 || Самостоятельная работа 19 >