Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Пояснения к лабораторной работе №8

Читайте также:
  1. II. Общие требования к выпускной квалификационной работе
  2. II. ОПИСАНИЕ ЛАБОРАТОРНОЙ УСТАНОВКИ
  3. IV. Вредные факторы при работе с компьютером
  4. IX. Дополнительные меры по созданию условий для привлечения к работе молодых педагогов
  5. Test с пояснениями
  6. VII. Сигналы, применяемые при маневровой работе
  7. А тот ничего не понимает в работе хирурга.

 

Сначала делаем все как в лаб7:

  1. Создаем пункты меню,
  2. Методы для них
  3. Переменную S1 и присваиваем ей начальное значение.
  4. Выводим переменную в методе

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);

mybiblioteka.su - 2015-2024 год. (0.007 сек.)