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г.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.