Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Исследуем объект главного окна




Объект главного окна отвечает за всю работу окна программы, за исключением клиентской области.

Это означает, что объект главного окна отвечает за заголовок, строку меню, панель инструментов и строку состояния в нижней части окна. Заголовок и строка меню создаются автоматически при создании окна, а панель инструментов и строка со стояния добавляются в методе OnCreate().

Перейдем к объекту вида — он отвечает за отображение данных из документа в клиентской области окна программы. Большая часть наших действий связана именно с объектом вида.

Исследуем объект вида

В объекте вида выводится наше сообщение «Добро пожаловать в Visual C++!». Это происходит в методе OnDraw() файла welcomeView.cpp:

void CWelcomeView::OnDraw(CDC* pDC)

{

CString welcome_string = "Добро пожаловать в Visual C++";

CWelcomeDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

pDC->TextOut(0, 0, welcome_string);

}

Этот метод вызывается в ситуации, когда требуется перерисовать клиентскую область. На самом деле именно так станут работать все наши программы — они будут разбиты на множество различных методов, предназначенных для обработки конкретных сообщений Windows.

Программирование, управляемое событиями

Программы для Windows управляются событиями (event-driven). Это означает, что они реагируют на действия пользователя, называемые событиями — щелчки Кнопкой мыши, нажатия клавиш и т. д. При наступлении любого из этих событий в программе вызывается соответствующий метод. Тем самым удается разбить ее на небольшие методы, соответствующие различным сообщениям Windows. Например, метод OnDraw() вызывается при необходимости перерисовать клиентскую область — когда окно впервые отображается на экране, когда пользователь перемещает окно, закрывавшее часть нашего окна, или же сворачивает и разворачивает текущее окно.

Вывод сообщения в объекте вида

Что же происходит в методе OnDraw() при выводе текста? Прежде всего, мы создадим новый объект welcome_string, принадлежащий классу MFC CString, и заносим в него текст:

void CWelcomeView::OnDraw(CDC* pDC)

{

CString welcome_string = "Добро пожаловать в Visual C++";

CWelcomeDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

pDC->TextOut(0, 0, welcome_string);

}

Класс CString содержит все операции со строками. Он чрезвычайно полезен и является заметным достижением по сравнению с принятой в языке С интерпретацией строк как символьных массивов. Класс CString содержит следующие методы:

AllocSysString AnsiToOem Collate
Compare CompareNoCase CString
Empty Find FindOneOf
Format FormatMessage FreeExtra
GetAt GetBuffer GetBufferSetLength
GetLength IsEmpty Left
LoadString LockBuffer MakeLower
MakeReverse MakeUpper Mid
OemToAnsi оператор [ ] оператор +
оператор += оператор « оператор ==
оператор == < и т. д. оператор » оператор LPCTSTR
ReleaseBuffer ReverseFind Right
SetAt SetSysString SpanExcluding
Spanlncluding TrimLeft TrimRight
UnlockBuffer Методы, специфические для Windows    

Затем в методе OnDraw() мы выводим текстовую строку через переданный методу указатель pDC, который ссылается на объект класса MFC с именем CDC. Конкретно, мы вызываем метод TextOut() этого объекта

Класс CDC чрезвычайно важен для нас, поскольку он предназначен для работы с контекстами устройств.Весь графический и текстовый вывод, выполняемый нами в Visual C++, будет осуществляться через контексты устройств.










Последнее изменение этой страницы: 2018-04-12; просмотров: 380.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...