Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Уроки по Visual C++ (MFC, платформа .NET)


Информационный Канал Subscribe.Ru

Уроки по C/C++. Рассылки сайта progs.biz  
Начало > Visual C++.NET > MFC > Урок 19

А. Ламот. Программирование трехмерных игр для Window.
А. Ламот. Программирование трехмерных игр для Window
Заказать на Озоне


Полные версии уроков (с картинками): урок 19.

Visual C++.NET
Урок 19. Получение точного размера надписи

Текст в контекст устройства, как известно, можно вывести методом TextOut класса CDC. При этом часто требуется узнать длину и высоту текста - т. е. сколько места он будет занимать на экране. Если высоту еще узнать можно - она будет всегда одна и та же при одном и том же шрифте, то с длиной дело немного сложнее - хотя бы потому, что разные буквы одного и того же шрифта могут иметь разную ширину.

Но все не так страшно - для этого существует специальная функция GetTextExtent. Она возвращает результат типа CSize, в котором и содержаться ширина и высота текста (в пикселах).

Вот пример ее использования:

void CbitmapView::OnDraw(CDC* pDC)
{
    ...
    // Формируем строку для вывода на форму.
    CString s = "Some Text";
    // Получаем размер строки s.
    CSize size = pDC->GetTextExtent(s);
    // Рисуем прямоегольник с отступом 2 пиксела.
    pDC->Rectangle(10-2, 10-2, 10+size.cx+2, 10+size.cy+2);
    // Выводим надпись.
    pDC->TextOut(10, 10, s);
}

Компилируем и запускаем программу. Точно вокруг текста появится рамочка.

Если же мы поменяем сам текст (и его длину соответственно), то размеры рамочки тоже поменяются.

Рассылки сайта progs.biz
Visual C++, MFC
C# и .NET
VB.NET
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX new!
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru


Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
2002-2004 сайт progs.biz
2002-2004 Алексеев Игорь

http://subscribe.ru/
http://subscribe.ru/feedback/
Адрес подписки
Отписаться

В избранное