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