Поделиться через


CFont::CreateFont

Инициализирует объект CFont с заданными характеристиками.

BOOL CreateFont( 
   int nHeight, 
   int nWidth, 
   int nEscapement, 
   int nOrientation, 
   int nWeight, 
   BYTE bItalic, 
   BYTE bUnderline, 
   BYTE cStrikeOut, 
   BYTE nCharSet, 
   BYTE nOutPrecision, 
   BYTE nClipPrecision, 
   BYTE nQuality, 
   BYTE nPitchAndFamily, 
   LPCTSTR lpszFacename  
);

Параметры

  • nHeight
    Задает нужную высоту (в логических единицах) шрифта. См. раздел элемента lfHeight структуры LOGFONT в Windows SDK для описания. Абсолютное значение nHeight не должна превышать 16.384 единиц устройства после ее преобразована. Для всех сравнений высоты шрифта ищет модуль сопоставления самый крупный шрифт, не превышает размер запрошенного или наименьшего шрифт, если все они превышают размер.

  • nWidth
    Указывает среднюю ширину (в логических единицах) символов в шрифте. Если nWidth 0, то сопоставлению от пропорций пропорции устройства будут цифрования доступных шрифтов, чтобы найти совпадение, ближайшая, которая определяется абсолютной значением различия.

  • nEscapement
    Задает угол (в единицах 0,1 градусов) между вектором escapement и ось X области отображения. Вектор escapement линия через начала координат первого и последнего символы на линии. Угол измеряется против часовых стрелок от оси X. См. раздел элемента lfEscapement в структуре LOGFONT в Windows SDK дополнительные сведения.

  • nOrientation
    Задает угол (в единицах 0,1 градусов) между базовым планом знака и оси X. Угол измеряется против часовых стрелок от оси X для систем координат, в которых y направление и вниз по часовой стрелке, начиная от оси X и y для систем координат, в которых направление вверх.

  • nWeight
    Задает плотность шрифта (в точках) в покрынных краской 1000). См. раздел элемента lfWeight в структуре LOGFONT в Windows SDK дополнительные сведения. Описанные значения приблизительны; фактические от которых зависит представление шрифт. Некоторые шрифты имеют только FW_NORMAL, FW_REGULAR и коэффициенты FW_BOLD. Если FW_DONTCARE указано, то по умолчанию вес используется.

  • bItalic
    Определяет, является ли шрифт курсивом.

  • bUnderline
    Подчеркивание указывает, является ли шрифт.

  • cStrikeOut
    Определяет, является ли поражены символов в шрифте. Указывает шрифт аута если установлено ненулевое значение значению.

  • nCharSet
    Определяет setSee символа шрифта является членом lfCharSet в структуре LOGFONT в Windows SDK для списка значений.

    Символы OEM - набор система- зависимые.

    Шрифты с другим знаком - наборы могут существовать в системе. Приложение, которое использует шрифт с неизвестным знаком - набором не должна пытаться преобразовать или интерпретации строки, обрабатываться с данным шрифтом. Вместо этого строки должны передаваться напрямую к драйверу устройства вывода.

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

  • nOutPrecision
    Задает необходимую точность вывода. Точность вывода определяет степень близости выход должен соответствовать высоте шрифта, ориентации запрошенного ширине символов, escapement и этапу шрифта. См. раздел элемента lfOutPrecision в структуре LOGFONT в Windows SDK список значений и дополнительные сведения.

  • nClipPrecision
    Задает необходимую точность отсечения. Этот параметр определяет, как отсекать символы, которые частично находятся за пределами области отсечения. См. раздел элемента lfClipPrecision в структуре LOGFONT в Windows SDK для списка значений.

    Для использования встроенного только для чтения, приложение должно определить CLIP_ENCAPSULATE.

    Для обеспечения согласованного поворота устройства, векторные шрифты TrueType и приложения могут использовать оператор OR, чтобы объединить значения CLIP_LH_ANGLES с любым из других значений nClipPrecision. Если бит CLIP_LH_ANGLES установлен, то поворот для всех шрифтов, зависит от того, является ли ориентация системы координат левша или правша. (Дополнительные сведения о ориентации систем координат см. в описании параметра nOrientation). Если CLIP_LH_ANGLES не установлено, шрифты устройства всегда вращают против часовых стрелок, но поворот шрифтов, зависят от других ориентации системы координат.

  • nQuality
    Указывает качество вывода шрифта, которое определяет, как следует тщательно GDI должно попытаться соответствовать атрибутам логически- шрифта к этому из фактического физического шрифта. См. раздел элемента lfQuality в структуре LOGFONT в Windows SDK для списка значений.

  • nPitchAndFamily
    Указывает шаг и семейство шрифтов. См. раздел элемента lfPitchAndFamily в структуре LOGFONT в Windows SDK список значений и дополнительные сведения.

  • lpszFacename
    CString или указатель на null- завершенной строку, которая задает имя шрифта шрифта. Длина этой строки, не должна превышать 30 символов. Функции Windows EnumFontFamilies можно использовать для перечисления всех доступных в настоящее время. Если lpszFacenameNULL, GDI использует устройство- независимую шрифт.

Возвращаемое значение

Ненулевой, если успешно; в противном случае – значение 0.

Заметки

Шрифт может быть затем выбрать в качестве шрифта для любого контекста устройства.

Функция CreateFont не создает шрифта GDI нового окна. Она просто выбирает ближайшая совпадение из физических шрифтов, доступных в GDI.

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

Завершив с объектом CFont созданный функцией CreateFont, используйте CDC::SelectObject чтобы выбрать другой шрифт в контекст устройства, а затем удалите объект CFont, который больше не нужен.

Пример

// The code fragment shows how to create a font object, 
// select the font object into a DC (device context) for text 
// drawing, and finally delete the font object. 

// Initializes a CFont object with the specified characteristics. 
CFont font;
VERIFY(font.CreateFont(
   12,                        // nHeight
   0,                         // nWidth
   0,                         // nEscapement
   0,                         // nOrientation
   FW_NORMAL,                 // nWeight
   FALSE,                     // bItalic
   FALSE,                     // bUnderline
   0,                         // cStrikeOut
   ANSI_CHARSET,              // nCharSet
   OUT_DEFAULT_PRECIS,        // nOutPrecision
   CLIP_DEFAULT_PRECIS,       // nClipPrecision
   DEFAULT_QUALITY,           // nQuality
   DEFAULT_PITCH | FF_SWISS,  // nPitchAndFamily
   _T("Arial")));                 // lpszFacename 

// Do something with the font just created...
CClientDC dc(this);  
CFont* def_font = dc.SelectObject(&font);
dc.TextOut(5, 5, _T("Hello"), 5);
dc.SelectObject(def_font);

// Done with the font.  Delete the font object.
font.DeleteObject(); 

Требования

заголовок: afxwin.h

См. также

Ссылки

Класс CFont

Диаграмма иерархии

CFont::CreateFontIndirect

CFont::CreatePointFont

CreateFont

EnumFontFamilies

EnumFonts

LOGFONT