Студопедия

КАТЕГОРИИ:

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

Конфигурации Win32 Debug и Win32 Release




На панели инструментов имеется список, в котором можно выбрать один из элементов:

· Debug

· Release

· Configuration manager…

 

Сводка параметров конфигураций Debug и Release представлена в таблице.

 

Параметр Окончательная сборка (Release) Отладочная сборка (Debug)
Отладка по исходным текстам Отключена Включена для компилятора и компоновщика
Диагностические макросы MFC Отключены (определено NDEBUG) Включены (определено _DEBUG)
Библиотеки Рабочие библиотеки MFC Отладочные библиотеки MFC
Оптимизация Оптимизация по скорости (в Learning Edition отсутствует) Без оптимизации (ускоренная компиляция)

 

Разработка приложений ведется в режиме отладочной сборки (Debug), а перед поставкой заказчику программа собирается заново в режиме окончательной сборки (Release). Исполняемые файлы, собранные в режиме Release, будут иметь меньший размер и работать быстрее. Текущая конфигурация выбирается из списка на панели инструментов Build, или с помощью команды меню Build→Configuration manager…. По умолчанию, результаты и промежуточные файлы сборки проекта, созданные в отладочном режиме, хранятся в подкаталоге Debug, а файлы для окончательной сборки — в подкаталоге Release.

Активизация диагностических макросов

Макросы TRACE библиотеки MFC очень полезны для наблюдения за работой программы. Для их работы необходимо, чтобы трассировка была активизирована, что и установлено по умолчанию. Если макросы в вашей программе не генерируют никаких результатов, убедитесь, что Вы запускаете отладочную версию программы командой F5.

Удобство макросов состоит в том, что, в отличие от встроенной в программный код примитивной печати сообщений, макросы «работают» только в отладочной версии программы и их, в отличие от обычного вывода данных, не нужно и не следует удалять после того, как, по Вашему мнению-заблуждению, отладка программы уже закончена. Для проверки работы макросов добавьте, например, выражение

TRACE("Вход в функцию CDRWView::OnDraw\n");

в функцию OnDraw(), запустите приложение в режиме отладки, попробуйте перемещать окно по экрану с частичным его сокрытием и понаблюдайте за выводом сообщений на вкладку Debug окна Output ИС.

Дополнительную информацию об использовании макросов отладки можно найти в этом  конспекте лекций – раздел «Макросы».

Два способа запуска программы

Visual С++ позволяет запускать программу непосредственно (с помощью сочетания клавиш Ctrl+F5) или в отладчике (с помощью клавиши F5). Непосредственный запуск выполняется значительно быстрее, так как от Visual C++ не требуется сначала загружать отладчик. Если Вам не нужны трассировочные сообщения и точки останова, запускайте программу с помощью Ctrl+F5 или кнопки  на панели инструментов Standard.

 



Интерфейс графического устройства, цвет и шрифт

 

Этот материал почерпнут из работы [1] и ссылки в тексте на главы относятся к этой работе.

Всякий раз, когда программа выводит что-нибудь на дисплей или на принтер, она  обязана воспользоваться GDI-функциями. (Graphics Device Interface – интерфейс графических устройств.  Набор API в Microsoft Windows, поддерживающих графический вывод растровых изображений на дисплей, графопостроители и ряд принтеров.) Эти функции позволяют рисовать точки, прямоугольники, многоугольники и др. графические примитивы, а также выводить растровые изображения и текст. Круги и квадраты Вы сможете рисовать почти сразу, однако программирование вывода текста – более сложная задача. Из этой главы Вы узнаете, как эффективно использовать GDI в среде Microsoft Visual С++, работать со шрифтами на дисплее и на принтере. Однако подробное обсуждение того, как каркас приложения управляет печатью, состоится в главе «контекст устройства».

Контекст устройства (device context) Microsoft Windows — ключевой элемент GDI, служащий для представления физического устройства. С каждым объектом «контекст устройства» C++ связан контекст устройства Windows, идентифицируемый 32-разрядным описателем типа HDC. Библиотека MFC 6.0 предоставляет несколько классов контекста устройства. Базовый класс CDC содержит все необходимые для рисования функции-члены, включая несколько виртуальных. Все производные классы, за исключением CMetaFileDC, отличаются только конструкторами и деструкторами. Если Вы (или каркас приложения) создали объект производного класса контекста устройства, то указатель на CDC можно затем передать функции, например, OnDraw. Для дисплея обычно используют производные классы CClientDC и CWindowDC. Для других устройств, таких как принтеры или буферы в памяти, используют объекты базового класса CDC. «Виртуальность» класса CDC — важная особенность каркаса приложения. В главе 19 Вы увидите, насколько легко написать код, работающий и с дисплеем, и с принтером. Оператор в OnDraw, например,

pDC->TextOut(0,0,”Я писатель!!!”);

 

посылает текст на дисплей, принтер или в окно предварительного просмотра печати, в зависимости от объекта, на который ссылается параметр pDC функции OnDraw. Каркас приложения связывает описатели контекста устройства с объектами, представляющими контексты устройств дисплея и принтера. Чтобы связать описатель контекста с объектами, представляющими контексты других устройств (таких, как буфер памяти, с которым Вы познакомитесь в главе 11), программист должен после создания объекта вызвать специальную функцию класса.










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

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