Сейчас мы быстрыми темпами, не углубляясь в детали, создадим диалог, работающий в немодальном режиме и позволяющий исследовать решения уравнения Пуассона при разных значениях свойств среды, произвольном расположении источников поля и произвольных граничных условиях.
Так как диалог будет вызываться по команде меню, откройте в окне редактора ресурс меню IDR_MAINFRAME и приведите его в соответствие со следующей схемой. В меню File должна быть только одна команда Exit, в меню Edit уберите все команды и вставьте одну команду Parameters, индекс (ID_EDIT_PARAMETERS) ей будет присвоен автоматически. Остальные меню оставьте без изменения. С помощью редактора диалогов создайте новое диалоговое окно (форму), которое имеет вид, изображенный на рис. 11.4. Типы элементов управления, размещенных в окне диалога, и их идентификаторы сведены в табл. 11.1. Затем создайте класс для управления диалогом.
Рис. 11.4. Форма диалога для управления параметрами краевой задачи
Таблица 11.1. Идентификаторы элементов управления
Вручную введите изменения в файл с объявлением класса, так чтобы он стал: ftpragma once
class CParamDlg : public CDialog {
//===== Будем общаться с окном
friend class CChildView;
DECLARE_DYNAMIC(CParamDlg)
public:
//===== Будем помнить его адрес
CChildView *m_pView;
//===== В конструкторе запросим его адрес
CParamDlg(CChildView* р) ;
virtual ~CParamDlg () ;
// Dialog Data
enum { IDD = IDD_PARAM );
protected:
virtual void DoDataExchange(CDataExchange* pDX) ;
DECLARE_MESSAGE_MAP() );
Для всех четырех кнопок на форме диалога создайте обработчики уведомлений, или, используя терминологию Microsoft, Control Event типа BN_CLICKED. Вы помните, что это делается с помощью небольшой кнопки Control Event, которая расположена на панели инструментов окна Properties.