Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций ООП Visual C++.doc
Скачиваний:
13
Добавлен:
10.11.2019
Размер:
453.12 Кб
Скачать

Структура программы.

Объект приложения (ОП) запускает программу, создаёт главное окно, размещает его на экране, организует передачу сообщений Windows.

Объект главного окна (CMainFrame) содержит меню, заголовок окна, строку состояния и клиентскую область.

Объект документа (CNameDoc) хранит данные и переменные.

Объект вида (CNameView) представляет окно, отображаемое поверх клиентской области, в которую выводятся текст или графическое изображение.

Создание простейшего приложения Windows.

1)Запустите Visual C++ Dev Studio. Выберете file/new. Далее следуйте указаниям мастера создания приложения. Выберете на вкладке Project - MFC AppWizard(exe), в поле Project name введите имя создаваемого проекта латинскими буквами ( в нашем примере имя - Name), в поле Location укажите папку для хранения вашего проекта.

На первом шаге создания приложения выберете тип создаваемого документа однодокументальный проект, многодокументальный проект или диалог (например, Single document).

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

На третьем шаге выбирается уровень поддержки операций с составными документами (None).

На четвёртом шаге выбираются опции, определяющие внешний вид пользовательского интерфейса.

На пятом шаге выбираются опции, которые нельзя было отнести по назначению ни к одному из предыдущих этапов. Здесь можно выбрать тип подключения библиотек: динамически и статически. Динамически связываемая библиотека представляет собой множество функций, используемых самыми разными приложениями. Использование DLL сокращает объём программы, но несколько усложняет установку продукта и ухудшает переносимость программы. Поэтому целесообразней подключать библиотеки статически.

И наконец последний этап создания приложения - подтверждение имён классов и имён файлов, которые создаёт для Вас AppWizard. Нажмите Finish.

2) Создайте переменные-члены класса документа. Для этого нажмите правой кнопкой мыши в ClassView на CNameDoc и выберете пункт Add Member Variable. В поле Variable Type напишите CString, а в поле Variable Name задайте имя st.

3) Произведём инициализацию переменной st в конструкторе документа (CNameDoc), щёлкнув по нему 2 раза мышью, и записав st=”Hello!”.

4)Организовать отображение текущего состояния документа в CnameView с помощью метода OnDraw, записав в него:

void CNameView::OnDraw(CDC* pDC)

{

// Создание нового документа //

CNameDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

pDC->TextOut(0,0,pDoc->st);

}

Теперь можно запускать программу, нажав на панели восклицательный знак.

Работа с пером.

Рисование в клиентской области осуществляется с помощью объекта – перо, представителя класса CPen. Для этого необходимо:

  1. Сформировать новое перо (pen – имя объекта)

CPen pen(PS_SOLID,x*2+1,RGB(0,0,255))

и передать его в контекст

CPen*oldPen=pDC->SelectObject(&pen);

  1. Нарисовать линию.

pDC->MoveTo(20,20);

pDC->LineTo(20,400);

  1. Вернуть старое значение пера контексту

pDC->SelectObject(oldPen);}

Конструктору объекта CPen требуется 3 параметра:

1) Стиль линии : DS_DASH-штриховая линия, PS_DOT-пунктирная линия, PS_SOLID-сплошная

линия и др.

2) Толщина линии;

3) Цвет линии. В макросе RGB 3 параметра, соответственно для красной, зелёной и синей

составляющих цвета. Значения интенсивностей составляющих находятся в интервале от 0 до

255.Если все компоненты равны нулю, то получим чёрный цвет, а если 255, то белый.

Пример программы:

void CNameView::OnDraw(CDC* pDC)

{

CPeroDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

//Инициализировать положение линии//

UINT position=10;

//Начертить 16 линий//

for (UINT x=0; x<16;++x)

{ /Сформировать новое перо и выбрать его в контекст//

CPen pen (PS_SOLID,x*2+1,RGB(0,0,255));

CPen*oldPen=pDC->SelectObject(&pen); // Смотрите приложение

//Начертить линию новым пером//

position+=x*2+10;

pDC->MoveTo(20,position); // Смотрите приложение

pDC->LineTo(400,position); // Смотрите приложение

//Восстановить прежнее перо в контексте//

pDC->SelectObject(oldPen);} // Смотрите приложение

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]