ing, в котором хранится рекоме
Автор admin Понедельник, 27 апреля 2009 11:32
ing, в котором хранится рекомендуемый межстрочный интервал. Результат сложения записывается в переменную LineHeight и применяется в дальнейшем при вычислении начальной позиции каждой строки. Операторы, с помощью которых можно получить метрику текста и определить высоту его строки, ниже приведены полужирным шрифтом. void CTextDemoView::OnDraw(CDC* pDC) { CTextDemoDoc* pDoc = GetDocumentO; ASSERT_VALID(pDoc); // TODO: add draw code for native data here RECT ClipRect; int LineHeight; TEXTMETRIC TM; int Y = MARGIN; // Если шрифт не выбран, необходимо выйти из функции if (pDoc->m_Font.m_hObject == NULL) return; // Выбрать шрифт в контексте устройства pDC->SelectObject (&pDoc->m_Font); // Получить метрику текста pDC->GetTextMetrics(&TM); LineHeight ¦ TM.tmHeight + TM.tmExternalLeading; } Отображение форматированного текста 301 6. Выбранный в диалоговом окне Font цвет шрифта сохраняется в переменной mColor (если цвет шрифта не указан, символы текста будут отображаться черным цветом). Для того чтобы задать цвет текста, значение переменной ш_Со1ог нужно передать в функцию CDC: :SetTextColor(). Кроме того, нам не
Подробнееста устройства, созданном в кл
Автор admin Понедельник, 27 апреля 2009 11:32
ста устройства, созданном в классе документа. Передача объекта шрифта объекту контекста устройства обеспечит отображение текста шрифтом, описание которого соответствует описанию, хранящемуся в объекте шрифта. Выполнить указанные действия можно при условии, что в функцию CTextDemoView: :0nDraw() будет добавлен оператор вызова функции CDC: :SelectObject(). void CTextDemoView::OnDraw(CDC* pDC) { CTextDemoDoc* pDoc = GetDocumentO; ASSERT_VALID(pDoc); // TODO: add draw code for native data here RECT ClipRect; int LineHeight; TEXTMETRIC TM; int Y = MARGIN; if (pDoc->m_Font.m_hObject — NULL) return; pDC->SelectObject (&pDoc->m_Font); } 5. Программа TextDemo должна вывести на экран значения полей структуры TEXTMETRIC для шрифта, выбранного в диалоговом окне Font. Чтобы отобразить в окне представления несколько строк текста, необходимо рассчитать координаты начальной позиции каждой строки. Но это невозможно сделать, не зная общей высоты строки текста. Данная величина рассчитывается как сумма значения поля tmHeight структуры TEXTMETRIC, определяющего высоту самого высокого символа, и значения поля tmExternal Lead
Подробнееую для выбора атрибутов шрифта
Автор admin Понедельник, 27 апреля 2009 11:32
ую для выбора атрибутов шрифта, выполнение функции CTextDemoView: :0nDraw() должно сразу завершиться. Чтобы это работало, добавьте в функцию CTextDemoView::OnDrawO выделенные строки. void CTextDemoView::0nDraw(CDC* pDC) { CTextDemoDoc* pDoc = GetDocumentO; ASSERTJALID(pDoc); // TODO: add draw code for native data here RECT ClipRect; int LineHeight; TEXTMETRIC TM; int Y – MARGIN; if (pDoc->mJont.m_hObject — NULL) return; } Здесь для проверки того, создан ли шрифт, используется дескриптор CGdiObject: :m_hObject, который содержит дескриптор HF0NT, связанный с объектом шрифта. Поскольку класс CFont является производным от класса CGdi Object, а в классе документа определена переменная mFont класса CFont, доступ к дескриптору CGdi Object: :m_hOb ject можно получить, используя составное имя m__Font.m__hObject. 4. Для отображения текста или графики необходимо создать объект контекста устройства, который был бы связан с окном представления. Чтобы определить, какой шрифт должен использоваться при отображении текста, необходимо 300 Занятие 11. Отображение текстовой информации выбрать объект шрифта в объекте контек
Подробнее
Последние комментарии