Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Янг Майкл Дж. -> "Visual С++ 6. Полное руководство: В 2 т.(том2)" -> 38

Visual С++ 6. Полное руководство: В 2 т.(том2) - Янг Майкл Дж.

Янг Майкл Дж. Visual С++ 6. Полное руководство: В 2 т.(том2) — Бином, 2006. — 530 c.
Скачать (прямая ссылка): vicualcc2006t2.djvu
Предыдущая << 1 .. 32 33 34 35 36 37 < 38 > 39 40 41 42 43 44 .. 173 >> Следующая

m_LineTable [Num++] += NumBuf;
//и так далее ...
Далее функция OnOptionsFont создает объект контекста устройства, связанный с окном представления, выбирает в нем предварительно инициализированный объект шрифта и вызывает функцию CDC: : GetTextMetrics для получения информации о шрифте, фактически использующемся для отображения текста в окне. Функция GetTextMetrics копирует эту информацию в поля структуры
TEXTMETRIC.
POSITION Pos = GetFirstViewPosition (); Cview *PView = GetNextView (Pos); CClientDC ClientDC (PView);
// выбор шрифта из объекта контекста устройства ClientDC.SelectObject (&m_Font); TEXTMETRIC TM;
ClientDC.GetTextMetrics (&TM);
Мы уже знаем, что функция OnDraw выбирает объект шрифта из объекта контекста устройства, чтобы использовать его при отображении текста. Однако функция OnOptionsFont выбирает этот объект только для получения информации о шрифте, вызывая функцию GetTextMetrics. Затем функция OnOptionsFont записывает содержимое каждого поля структуры textmetric в переменную mJLineTable. (Функции GetFirstViewPosition и GetNextView рассмотрены в параграфе "Добавление кода поддержки" гл. 12.)
Примечание
Содержание каждого поля структуры logfont и textmetric показано в следующих разделах справочной системы: Platform SDK, Graphics and Multimedia Services, GDI, Fonts and Text, Font and Text Reference, Font and Text Structures.
Можно заметить, что структуры logfont и textmetric похожи (имеют множество полей, хранящих одинаковую информацию), но имеют и важное теоретическое отличие. Структура logfont используется для инициализации объекта шрифта и хранит описание требуемого шрифта, не гарантируя того, что шрифт, соответствующий описанию, действительно доступен для любого конкретного устройства вывода. Если же выбрать объект шрифта из контекста устройства, то при отображении текста будет использоваться шрифт, который более всего близок к описанию. Значения, которые функция GetTextMetrics присваивает структуре textmetric, задают шрифт, используемый для отображения текста, который действительно доступен. Так как в диалоговом окне Font выбираются только фактически доступные шрифты, то структуры log font и textmetric отображаются средствами TextDemo почти аналогично. Хотя в общем случае эти две структуры не всегда совпадают.
Использование стандартных шрифтов
Отображение диалогового окна Font и использование объекта шрифта позволяет выбрать любой из доступных шрифтов для экрана или для другого устройства, выбранного перед отображением диалогового окна. Можно выбрать стандартный шрифт, не отображая диалоговое окно Font и не используя объект шрифта. Стандартным является шрифт, принадлежащий небольшому набору типовых шрифтов Windows, обычно используемых для отображения информации на экране. Чтобы выбрать стандартный шрифт, вызовите функцию SelectStockObject класса CDC.
virtual CGdiObject* SelectStockObject (int nlndex);
Параметр nindex — это индекс требуемого шрифта. Ему можно присвоить одно из значений, приведенных в табл. 18.5. Шрифты, соответствующие этим значениям, показаны на рис. 18.6.
Следующая функция OnDraw перед отображением текста в окне выбирает системный шрифт с фиксированным питчем:
void CTextdemoView::OnDraw(CDC* pDC) (
CTextdemoDoc* pDoc = GetDocument();
// TODO: здесь добавьте код отображения
pD->SelectStockObject (SYS TEM_FIXE D_FONT);
// установка атрибутов текста . . .
// отображение текста в окне представления ...
)
В следующей главе вы узнаете, что функция SelectStockObject также используется для выбора других стандартных инструментов, например, кистей и перьев, используемых при рисовании.
Таблица. 18.5. Значения, присваиваемые параметру nindex функции Selectstockobject для выбора стандартного шрифта
Значение параметра
Стандартный шрифт
sistem font
sistem fixed font
ansi var font
ansi fixed font
device default font
oem fixed font
Системный шрифт System с переменным питчем. Используется для отображения текста на экране, если шрифт не выбран в объекте контекста устройства. (В ранних версиях Windows использовался для отображения заголовков, меню и других текстов в окне) Системный шрифт с фиксированным питчем Fixedsys. Наиболее разборчивый шрифт, пригодный для программ редактирования и других приложений, в которых применяется шрифт с фиксированным питчем. Используется редактором Windows Notepad Шрифт с переменным питчем, более мелкий, чем заданный значением system_font Шрифт с фиксированным питчем, более мелкий, чем заданный значением system_fixed_font Шрифт устройства, заданный по умолчанию (например, для окна — System, для принтера HP Laser Jet II — Courier)
Шрифт с фиксированным питчем Terminal. Соответствует набору символов, используемых основными аппаратными средствами. (В ранних версиях Windows использовался для отображения текста в окне MS-DOS)
This is the SYSTEM FONT stock font.
This is the SYSTEM_FIXED_FONT stock font.
This is the AN S l_VAR_FO N T stock font.
This is the ANSI_FIXED_FONT stock font.
This is the DEVICE_DEFAULT_FONT stock font.
Предыдущая << 1 .. 32 33 34 35 36 37 < 38 > 39 40 41 42 43 44 .. 173 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100