Создание диалогового окна когда главным является «Документ» (Лабораторная работа № 7 по VisualC++ 2005)

Страницы работы

7 страниц (Word-файл)

Содержание работы

Лабораторная работа №7 по VisualC++ 2005

"Создание диалогового окна когда главным является  «Документ»"

Составил доц. Авраменко В.В.

1 Постановка задачи

В пункт меню File добавить подпункт «Show Dialog…», при выборе которого на экране появляется диалоговое окно. В этом окне помимо Ok  и  Cancel должна быть стартовая кнопка и текстовое окно. При нажатии стартовой кнопки в текстовом окне должен появиться определённый текст, который при нажатии кнопки Ok должен воспроизвестись в клиентском окне.

2 Общие указания

2.1 Создание пункта меню и обработчика события

1)  Start Page. Create:Project.
Выбрать тип проекта (Project types) MFC, шаблон- MFC Application,
Name- dia.

2)   В окне Application Type выбрать Single document. Снять флажок Use Unicode Libraries. Щёлкнуть на Finish.

      3) Добавить в меню File команду Show Dialog…  Точки указывают, что происходит  вызов именно диалогового окна ( это обозначение является стандартным) . Для этого  в Solution Explorer выбрать вкладку Resource View.

Открыть папку dia и затем dia.rc (ресурсы).  Открыть папку  Menu  и в ней дважды щёлкнуть по идентификатору главного окна  IDR_MAINFRAME.

В окне редактора появляются пункты меню. Меню для File – раскрыто. Выделить в нём print и нажать  insertnew.

  Выше print появляется пустая строка. Занести в неё название пункта -

 Show Dialog…Нажать Enter.    Автоматически этот пункт меню получает идентификатор ID_FILE_ SHOWDIALOG . Это имя  можно увидеть в свойствах (properties) для данного пункта в строке ID (identificator).

5) Создать обработчик команды Show Dialog… 

Для этого выделить пункт меню  Show Dialog… , вызвать контекстное меню  и выбрать в нём Add Event Handler (добавить обработчик события).

Появляется окно

В Message type оставить COMMAND, а в списке классов (Class List) – CdiaView.

В окне Function handler name находится имя OnFileShowdialog обработчика события.

Щёлкнуть на кнопке Add and Edit .

В файле diaView.cpp появится заготовка функции- обработчика:

void CdiaView::OnFileShowdialog()

{

    // TODO: Add your command handler code here

}

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

1) Выбрать вкладку Resource View. Выделить Dialog.  Вызвать контекстное меню, а в нём- Insert Dialog .  

  В результате будет запущен редактор диалогов,  который отобразит диалоговое окно. В нем  уже имеются кнопки  Ok  и Cancel. У этого окна заглавие Dialog, а имя по умолчанию- IDD_DIALOG1 (см.  для него Properties строка ID). В него нужно добавить кнопку и текстовое окно.  

          Добавление дополнительных элементов можно выполнить двумя способами. Можно просто брать нужный элемент управления  из палитры Toolbox  и перетаскивать   в позицию, где желательно его  разместить. А можно щёлкнуть на элементе управления из списка, чтобы выбрать его, а затем щёлкнуть на поле диалогового окна , куда нужно разместить. Когда элемент появится там, его можно перемещать и изменять размеры.

          У каждого элемента управления имеется имя по умолчанию. Его можно увидеть в строке  ID  окна Properties.

          2) Добавить в диалоговое окно Dialog  кнопку (Button1). Затем вызвать окно  Properties (свойства) и в строке Caption ввести текст: «Нажми меня!».

          3) Добавить в диалоговое окно управляющий элемент- текстовое окно. В списке Toolbox этот элемент называется  ab| Edit Control. По умолчанию его идентификатор IDC_EDIT1.

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

     1)  Выделить диалоговое окно для того, чтобы оно было в фокусе.

Выбрать в главном меню пункт Project/Add Class. Появляется окно. В строку class name  ввести имя класса, например,  Dlg. В окне Base class (базовый класс) автоматически появилось имя базового класса CDialog.

 Нажать Finish. В списке классов появился класс Dlg. Если выбрать вкладку Solution Explorer, то можно увидеть, что появились файлы Dlg.h и Dlg.cpp.

2.4 Связывание методов  с элементами диалоговых окон

               Ставится задача связать методы созданного класса Dlg с элементами управления диалогового окна Dialog. Речь идёт о создании обработчиков событий.

2.4.1 Обработчик нажатия стартовой кнопки «Нажми меня!»

          Выделить кнопку «Нажми меня!», вызвать контекстное меню и в нём щёлкнуть по Add Event Handler. В появившемся  окне в  Message type выбрать BN_CLICKED, а в списке классов (Class list) выбрать класс Dlg.

Нажать кнопку  Add and Edit. В результате будет создан  обработчик  OnBnClickedButton1 (). Его прототип размещается в файле  Dlg.h и имеет вид

public:

    afx_msg void OnBnClickedButton1();

Следует обратить внимание на строку символов (префикс) afx_msg. Это слово стоит перед обработчиком, чтобы выделить его из других членов- функций.Оно преобразуется препроцессором в пробел. Следует знать, что члены- функции, обьявленные в базовом классе CWnd, имеют префикс afx_msg.

В файле Dlg.cpp размещается заготовка обработчика события- нажатия стартовой кнопки «Нажми меня!».

void Dlg::OnBnClickedButton1()

{

    // TODO: Add your control notification handler code here

}

    В этом обработчике нужно запрограммировать вывод определенного текста в клиентскую область окна при нажатии стартовой кнопки «Нажми…». А для этого у созданного класса Dlg должен быть элемент данных типа строки символов. Чтобы создать этот элемент, нужно выделить текстовое окно, вызвать контекстное меню и выбрать в нем Add Variable.В открывшемся окне установить доступ public, в строке Category выбрать Value. При этом автоматически установится тип переменной CString.Ввести переменную m_text.

Теперь есть всё необходимое, чтобы конкретизировать содержание обработчика нажатия стартовой кнопки.

void Dlg::OnBnClickedButton1()

{

    m_text=" Текст в диалоговом окне ";// m_text - элемент данных класса Dlg, а обработчик - метод этого //же класса.

    UpdateData(false);// Метод занесения в текстовое окно.

    // false означает, что  IDC_EDIT1=m_text;

//идентификатору текстового окна присваивается m_text.

//true означает m_text=IDC_EDIT1т.е.считывание из окна

// TODO: Add your control notification handler code here

}

Похожие материалы

Информация о работе

Тип:
Методические указания и пособия
Размер файла:
85 Kb
Скачали:
0