Читайте также:
|
|
Сначала делаем все как в лаб7:
void CLab8View::OnDraw(CDC* pDC)
{
CLab8Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
pDC->TextOut(0,0,pDoc->S1);
}
Потом создаем окно диалога сначала для модального.
В меню
Insert | Recourse и нажмите кнопку NEW
Появится окно диалога, почти такое же как в лаб 2-6.
Его идентификатор IDD_DIALOG1 по умолчанию.
Дальше надо добавить класс диалогового окна в проект. Запускаем ClassWizard
Ответим OK на предложение создать класс. И дадим имя классу например Dil1
Дальше делаем в окошке поле ввода и переменную для него например m_tx1
Делаем методы для кнопок OK Cancel
void Dil1::OnOK()
{
UpdateData(1);
CDialog::OnOK();
}
void Dil1::OnCancel()
{
m_tx1="Нажата кнопка Cancel";
CDialog::OnCancel();
}
Добавляем в файл Lab8View.cpp в самое начало
#include "Dil1.h"
И пишем код для нашего пункта меню
void CLab8View::OnMedialMydial1()
{ Dil1 d1;
CLab8Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
d1.DoModal();
pDoc->S1=d1.m_tx1;
Invalidate();
}
Все запускаем наше модальное окно готово.
Теперь переходим к созданию Не модального окна.
Для работы с не модальным окном прежде всего надо при создании поставить галочку в свойствах Visible. Чтобы окно стало видимым. Создание картинки почти точно также как и в модальном случае:
При организации немодального диалога необходимо установить связь между классом (мы выберем CView) и созданным диалоговым классом, определяющим поведение немодального диалога.
Добавляем в класс Diln указатель на CView (с помощью него мы будем посылать сообщения Виду), и конструктор вот так:
class Diln: public CDialog
{
// Construction
public:
Diln(CWnd* pParent = NULL); // standard constructor
Diln(CView* pView);
CView* m_pView;
Добавляем свой конструктор к диалоговому окну. С указателем на вид.
Diln::Diln(CWnd* pParent /*=NULL*/)
: CDialog(Diln::IDD, pParent)
{
//{{AFX_DATA_INIT(Diln)
m_tx2 = _T("");
//}}AFX_DATA_INIT
}
Diln::Diln(CView* pView)
{
m_pView = pView;
}
С помощью добавить функцию добавляем в диалог функцию
BOOL Diln::Creat()
{
return CDialog::Create(Diln::IDD);
}
Которая выполняет роль DoModal()
Теперь переходим к классу вид
Как и в модальном случае добавляем
#include "Diln.h" как в сср так и в h файлах.
Затем создаем указатель на диалоговое окно
class CLab8View: public CView
{
protected: // create from serialization only
CLab8View();
DECLARE_DYNCREATE(CLab8View)
// Attributes
public:
CLab8Doc* GetDocument();
Diln* m_pDiln;
В конструкторе вида создаем объект диалого
CLab8View::CLab8View()
{ m_pDiln = new Diln(this); }
В деструкторе вида его уничтожаем.
CLab8View::~CLab8View()
{
Дата добавления: 2015-07-19; просмотров: 43 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Сетевой график с одинаковыми полными резервами времени на работах, но с разными коэффициентами напряженности. (Рис2) | | | UpdateData(1); |