Работа с диалоговым окном в шаблоне MFC Application (Лабораторная работа № 6 по VISUALC++ 2005)

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

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

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

2)   В окне Application Type выбрать Dialog based. Щёлкнуть на Finish.

3)  Создать  диалоговое окно. Для этого выбрать вкладку Resource View. Раскрыть папку Dialog, щелкнуть по автоматически созданному  идентификатору IDD_DIALOGTABUL_DIALOG. Появится диалоговое окно с кнопками Ok  и Cancel. Добаавить класс Dlg.

m_edit1,m_edit2,m_edit3,m_list1

10) Для  управляющего элемента кнопки Button1(«Пуск») Add Event Handler CdialogtabulDlg

#include<math.h>

void CdialogtabulDlg::OnBnClickedButton1()

{

    double x,y,xn,dx,xk,b=2.1;

CString s;

m_edit1.GetWindowTextW(s);

    xn=_wtof(s);

    m_edit2.GetWindowTextW(s);

    dx=_wtof(s);

    m_edit3.GetWindowTextW(s);

    xk=_wtof(s);

    for(x=xn;x<=xk;x+=dx)

        if(x>=0)

    {

        y=sqrt(b*x);

        s.Format(_T("x=%lf y=%lf\n"),x,y);

        m_list.AddString(s);

      }

        else

        {

             s.Format(_T("No rezult for x=%lf\n"),x);

             m_list.AddString(s);

        }

    // TODO: Add your control notification handler code here

}

          Вначале в файл добавлена директива препроцессора #include<math.h> Б чтобы можно было использовать стандартные математические функции.

          Для ввода значений xn, dx, xk используется функция,  прототип которой имеет вид

void CWnd::GetWindowTextW(CString&  rString) const.

Класс CEdit – производный от CWnd. Поэтому объекты m_edit1, m_edit2 и m_edit3 могут использовать этот метод. В качестве аргумента служит ссылка на CString. Конкретно используется локальная переменная CString s. Ей присваивается строка символов, представляющих значения xn, dx, xk. Затем с помощью функции _wtof() строка символов преобразуется в число действительного типа.

          Для вывода строки символов используется функция   AddString класса CListBox, вызываемая объектом m_list.  Её аргументом служит всё та же переменная s. Предварительно строка  выводимых символов формируется с помощью функции Format(). Эта функция напоминает printf(). Она преобразует данные других типов в текст. В данном примере выводимая строка символов предварительно обрабатывается функцией _T().

Она преобразует символ или строку в их аналог в уникоде (Unicode).  Если при выборе опций в окне, где выбирался режим Dialog based, отключить флажок “Use Unicode Libraries” то  _T()  не нужно  и можно тогда писать непосредственно s.Format(“x=%lfy=%lf\n”,x,y); Именно так выглядит вывод с помощью printf().         

Программа готова . После её запуска в соответствующие окна ввести значения xn, dx, xk и щелкнуть по кнопке «Пуск».

3 Контрольные вопросы

1 Как сделать диалоговое окно главным?

2 Как создать  диалоговое окно и установить необходимые управляющие элементы?

3 Как создать обработчик нажатия стартовой кнопки ?

4 Назвать  идентификаторы по умолчанию для установленных управляющих элементов.

5 Как добавить в класс CdialogtabulDlg элементы данных, соответствующие управляющим элементам?

6 Зачем нужно создавать локальную переменную типа CString  в обработчике OnBnClickedButton1()?

7 Как осуществляется ввод и вывод в обработчике OnBnClickedButton1()?

8 Для чего служит функция  Format()?

9 Для чего служит _T() и как отключить использование уникода?

Список литературы

1 Айвор Хортон  VISUAL C++ 2005 Базовый курс, «Диалектика», Москва*Санкт-Петербург*Киев , 2007г.

2 Сергеев А.П., Терен А.Н. Программирование в VISUAL C++ 2005 «Диалектика», Москва*Санкт-Петербург*Киев , 2006г.

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

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

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