Назад | Начало урока | Вперед
Содержание

День 6 (продолжение 2)

  • Создание собственных диалоговых окон

    Вверх

    Создание собственных диалоговых окон

    Создание диалогового окна

    Ваше собственное диалоговое окно, которое вы добавите в приложение, будет предлагать пользователю поле редактирования, куда он сможет ввести текст, и группу переключателей(radio button), среди которых можно выбрать только один. Когда пользователь щелкнет на OK, введенный им текст отобразится в главном окне приложения. После этого пользователь сможет щелкнуть на другой кнопке, чтобы увидеть какой из переключателей выбран. Это упражнение демонстрирует как использовать свои собственные диалоги для получения информации от пользователя и как прочитать выбор пользователя, когда диалог уже будет закрыт.

    Для создания диалога надо:

    После этого диалог будет готов.

    А сейчас выполните следующее :

    1. Выберите вкладку Resours View
    2. Щелкните правой кнопкой на папке Dialog и выберите пункт Insert Dialog
    3. Для нового диалога установите идентификатор IDD_MESSAGEDLG
    4. Не удаляйте кнопки OK и Cancel, а переместите их в новое положение.

      Подсказка

    5. Остальные объекты диалога разместите как показано на рисунке и отредактируйте согласно табл 6.13

      Объект Свойство Значение
      Dialog Caption Message and Option Dialog
      Static Text Caption Enter a message
      Edit Control ID
      Multiline
      Auto Vscroll
      IDC_EMESSAGE
      True
      True
      Group Box Caption Select an Option
      Radio Button ID
      Caption
      Group
      IDC_ROPTION1
      &Option1
      True
      Radio Button ID
      Caption
      IDC_ROPTION2
      O&ption2
      Radio Button ID
      Caption
      IDC_ROPTION3
      O&ption3
      Radio Button ID
      Caption
      IDC_ROPTION4
      O&ption4

    6. Создав макет диалога, выберите главное окно приложения, щелкните правой кнопкной и выберите пункт Add Class.
    7. В поле Name введите имя класса CMsgDlg и убедитесь что поле BaseClass имеет значение CDialog
    8. Щелкните Finish
    9. Когда будет создан новый класс, свяжите переменные с элементами управления согласно таб 6.14

      Таб 6.14 Переменные элементов управления

      Объект Имя Категория Тип Доступ
      IDC_EMESSAGE m_strMessage Value CString public
      IDC_ROPTION1 m_iOption Value int public

      В конфигурации свойств следует отметить два момента : Во первых , свойство Group нужно установить только для первого переключателя. Это будет означать что все последующие переключатели принадлежат к одной группе, из которой в текущий момент времени может быть выбран только один переключатель. Если свойство Group установить для всех переключателей, то все они будут независимы друг от друга, что позволит включать одновременно несколько из них, то есть оно будет вести себя подобно check box. Но пользователю это может показаться неудобным, так как обычно в каждой группе переключателей всегда включается только один.

      Примечание:

      Если за группой переключателей следуют другие элементы управления, то имеет смысл для первого из них установить значение свойства Group равным TRUE. Тогда ни один из остальных элементов управления не будет частью группы переключателей.

      Отметим что переключателю с установленным свойством Group была назначена целочисленная переменная m_iOption. Значение этой переменной зависит от того, какой из переключателей выбран. При выборе первого переключателя эта переменная принимает значение 0, при выборе второго - значение 1, и т.д. Более того, если понадобится автоматически (программно) выбрать один из переключателей, то достаточно присвоить этой переменной значение, на единицу меньше номера переключателя в группе.

      Теперь вы сделали все, чтобы в приложении можно было использовать конструируемый диалог. Поскольку вы не удаляли из диалогового окна кнопки OK и Cancel, то после щелчка на кнопке OK выполняется вызов метода UpdateData, так что самостоятельно вызывать данный метод не нужно. Изменения следует вносить только в код для главного окна приложения.

      Назад | Начало урока | Вверх | Вперед
      Содержание

      Hosted by uCoz