СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Вызов диалоговых окон из меню Windows Application (на базе одно документного приложения). Решение задач с использованием различных элементов графического интерфейса.

Категория: Информатика

Нажмите, чтобы узнать подробности

Вызов диалоговых окон из меню Windows Application (на базе одно документного приложения). Решение задач с использованием различных элементов графического интерфейса.

Просмотр содержимого документа
«Вызов диалоговых окон из меню Windows Application (на базе одно документного приложения). Решение задач с использованием различных элементов графического интерфейса.»


«БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»

(НИУ «БелГУ»)




Институт инженерных технологий и естественных наук




Кафедра прикладной информатики и информационных технологий






Отчет по лабораторной работе №8

Тема работы: Вызов диалоговых окон из меню Windows Application (на базе одно документного приложения). Решение задач с использованием различных элементов графического интерфейса.









студента очного отделения

3 курса 07001504 группы

Марко С. Тангуила


Проверил:

Старший преподаватель

Зайцева Наталья Олеговна







БЕЛГОРОД, 2018

Цель работы

Изучить включение в приложение Single document своих диалоговых окон. Научиться передавать значения между диалоговыми окнами и главным окном приложения. Изучить работу модального и немодального диалога. Получить практические навыки в разработке программ на основе MFC.


На рисунке 1 предоставлен результат работы пунктов меню. Открыли модальное окно.

Рисунок 1 – Работа пунктов меню.


Claba8Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); pDC-TextOut(0, 0, pDoc-str);


void Claba8View::OnMyDlg()

{

CMyDlg dlg;

Claba8Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc);

if (dlg.DoModal() == IDOK) pDoc-str = dlg.m_edDlg; Invalidate();

}

class CMyDlg_2 : public CDialog

{

public:

CMyDlg_2(CWnd* pParent = NULL);

CMyDlg_2(CView* pView);

CView* m_pView;

CMyDlg_2::CMyDlg_2(CWnd* pParent /*=NULL*/) : CDialog(CMyDlg_2::IDD, pParent)

{

{{AFX_DATA_INIT(CMyDlg_2) m_tx = _T("");

}}AFX_DATA_INIT}

CMyDlg_2::CMyDlg_2(CView* pView){

m_pView = pView;}

BOOL CMyDlg_2::Create(){

return CDialog::Create(CMyDlg_2::IDD);}

class Claba8View : public CView{

protected:

Claba8View();

DECLARE_DYNCREATE(Claba8View)

public:

CLab_08Doc* GetDocument();

CMyDlg_2* m_pDlg;

Claba8View::Claba8View(){

m_pDlg = new CMyDlg_2(this);}


Claba8View::~Claba8View(){

delete m_pDlg;}

void Claba8View::OnModalDlg(){

m_pDlg-Create();}

void CMyDlg_2::OnCancel(){

m_pView-PostMessage(WM_END); CDialog::OnCancel();}

#define WM_END WM_USER + 10

BEGIN_MESSAGE_MAP(Claba8View, CView)

//{{AFX_MSG_MAP(Claba8View)

ON_COMMAND(ID__1, OnMyDlg)

ON_COMMAND(ID__2, OnModalDlg)

}AFX_MSG_MAP

ON_MESSAGE(WM_END, OnEnd1)

ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)

ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)

ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)

END_MESSAGE_MAP()

LONG Claba8View::OnEnd1(){

m_pDlg-DestroyWindow(); return 0;}

UpdateData(1); m_pView-Invalidate();

Claba08Doc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

pDoc-str = m_pDlg-m_tx;

pDC-TextOut(0, 0, pDoc-str);