![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Return sin(t);
} Добавьте в проект новый ресурс – диалоговую панель для ввода данных IDD_DIALOG_INPUT, свяжите ресурс с новым классом MFC – назовите его CInputDlg. Разместите на диалоговой панели IDD_DIALOG_INPUT элементы управления: Edit Box – для ввода данных и Static – для поясняющих подписей; создайте с помощью ClassWizard переменные для элементов Edit Box. Свойства элементов управления и имена связанных с ними переменных приведены в табл. 21.3. Таблица 21.3
Установите начальные значения переменным, для этого с помощью ClassWizard добавьте в класс CInputDlg метод OnInitDialog() и отредактируйте его: BOOL CInputDlg:: OnInitDialog() { CDialog:: OnInitDialog(); //TODO: Add extra initialization here m_num=10; m_xBegin=0; m_xEnd=9; UpdateData(FALSE); return TRUE; //return TRUE unless you set the //focus to a control //EXCEPTION: OCX Property Pages should //return FALSE } Отредактируйте функцию OnInitDialog() главной диалоговой панели: BOOL CDialogsDlg:: OnInitDialog() { CDialog:: OnInitDialog(); //Set the icon for this dialog. The //framework does this automatically //when the application's main window //is not a dialog SetIcon(m_hIcon, TRUE); //Set big icon SetIcon(m_hIcon, FALSE); //Set small icon //TODO: Add extra initialization here new_data=0; //Новые данные отсутствуют return TRUE; //return TRUE unless you set //the focus to a control } С помощью ClassWizard создайте функции, обрабатывающие выбор команд меню главной диалоговой панели. Команда Выход: void CDialogsDlg:: OnExit() { OnOK(); } Команда Ввод данных: void CDialogsDlg:: OnInputdata() { CInputDlg inputdlg; //Создание объекта – //панели диалога new_data=inputdlg.DoModal(); //Функция DoModal() возвращает значение 1, //если была нажата клавиша OK, или значение 2, //если была нажата клавиша Cancel if (new_data==1) { if (inputdlg.m_num > 1) { n=inputdlg.m_num; x_begin=inputdlg.m_xBegin; x_end=inputdlg.m_xEnd; } Else { MessageBox(" Ошибка вода данных"); new_data=0; } } } При нажатии кнопки ОК диалоговой панели inputdlg происходит обновление переменных, связанных с элементами управления (табл. 21.3). Команда Вычисление: void CDialogsDlg:: OnCalculate() { //TODO: Add your command handler code here if (new_data==1) { Int i; CString str; double dx=(x_end-x_begin)/(n-1); x=x_begin; M_Result.ResetContent(); for(i=0; i< n; i++) { y=f(x); str.Format(" %3d %6.2lf %6.2lf", i+1, x, y);
|