CFont::CreateFont
Initialise un objet d' CFont avec les fonctionnalités spécifiées.
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
);
Paramètres
nHeight
Spécifie la hauteur voulue (en unités logiques) de la police. Consultez le membre d' lfHeight de la structure de LOGFONTdans Kit de développement logiciel Windows pour une description. La valeur absolue d' nHeight ne doit pas dépasser 16.384 unités après convertie. Pour toutes les comparaisons de hauteur, le mappeur de polices recherche la plus grande police qui ne dépasse pas la taille demandée ou la plus petite police si toutes les polices dépassent la taille demandée.nWidth
Spécifie la largeur moyenne (en unités logiques) des caractères de la police. Si nWidth est 0, les proportions du périphérique seront mises en correspondance par rapport à les proportions de numérisation des polices disponibles pour rechercher la correspondance la plus proche, qui est déterminée par la valeur absolue de la différence.nEscapement
Spécifie l'angle (dans les unités de 0,1 degrés) entre le vecteur d'échappement et l'axe des abscisses de la surface d'affichage. Le vecteur d'échappement est la ligne via les origines de la première et de derniers caractères sur une ligne. L'angle est mesuré dans le sens antihoraire de l'axe x. Consultez le membre d' lfEscapement dans la structure d' LOGFONT dans Kit de développement logiciel Windows pour plus d'informations.nOrientation
Spécifie l'angle (dans les unités de 0,1 degrés) entre la ligne de base d'un caractère et l'axe x. L'angle est mesuré dans le sens antihoraire de l'axe x pour les systèmes de coordonnées dans lequel l'y direction est enfoncée et dans le sens des aiguilles d'une montre de l'axe x pour les systèmes de coordonnées dans lequel l'y direction est en hausse.nWeight
Spécifie l'épaisseur de police (en pixels tracé par 1000). Consultez le membre d' lfWeight dans la structure d' LOGFONT dans Kit de développement logiciel Windows pour plus d'informations. Les valeurs sont décrites approximatives ; l'apparence réelle dépend de la police. Certaines polices sont uniquement FW_NORMAL, FW_REGULAR, et les poids d' FW_BOLD . Si FW_DONTCARE est spécifié, un poids par défaut est utilisé.bItalic
Spécifie si la police est en italique.bUnderline
Spécifie si la police est soulignée.cStrikeOut
Spécifie si les caractères de la police sont tapés. Spécifie une police de biffure si a une valeur différente de zéro.nCharSet
Spécifie le setSee du caractère de la police le membre d' lfCharSet dans la structure d' LOGFONT dans Kit de développement logiciel Windows pour obtenir une liste de valeurs.Le jeu de caractères OEM système est dépendant.
Les polices avec d'autres jeux de caractères peuvent exister dans le système. Une application qui utilise une police à un jeu de caractères inconnus ne doit pas essayer de convertir ou l'interprétation des chaînes qui doivent pour être affiché avec cette police. À la place, les chaînes doivent être passées directement au module de gestion de périphérique de périphérique de sortie.
Le mappeur de polices n'utilise pas la valeur d' DEFAULT_CHARSET . Une application peut utiliser cette valeur pour que le nom et la taille de la police pour décrire amplement la police logique. Si une police avec le nom spécifié n'existe pas, une police de n'importe quel jeu de caractères peut être substituée pour la police spécifiée. Pour éviter des résultats inattendus, les applications doivent utiliser la valeur d' DEFAULT_CHARSET avec modération.
nOutPrecision
Spécifie la précision souhaitée de sortie. La précision de sortie définit comment attentivement la sortie doit correspondre au corps du caractère demandé, la largeur, l'orientation de caractère, l'échappement, et le pas. Consultez le membre d' lfOutPrecision dans la structure d' LOGFONT dans Kit de développement logiciel Windows pour obtenir une liste de valeurs et de davantage d'informations.nClipPrecision
Spécifie la précision découpante souhaitée. La précision de découpage définit comment découper des caractères se trouvant partiellement hors de la zone de découpage. Consultez le membre d' lfClipPrecision dans la structure d' LOGFONT dans Kit de développement logiciel Windows pour obtenir une liste de valeurs.Pour utiliser une police en lecture seule incorporée, une application doit spécifier CLIP_ENCAPSULATE.
Pour obtenir la rotation cohérente du périphérique, le TrueType, et les polices vectorielles, une application peut utiliser l'opérateur OR pour combiner la valeur d' CLIP_LH_ANGLES avec l'une des autres valeurs d' nClipPrecision . Si le bit d' CLIP_LH_ANGLES est défini, la rotation pour toutes les polices dépend si l'orientation du système de coordonnées est gauchère ou droitière. (Pour plus d'informations sur l'orientation des systèmes de coordonnées, consultez la description du paramètre d' nOrientation .) Si CLIP_LH_ANGLES n'est pas défini, les polices de périphérique rotation toujours dans le sens antihoraire, mais la rotation d'autres polices dépend de l'orientation du système de coordonnées.
nQuality
Spécifie la qualité de la sortie de polices, qui définit comment attentivement GDI doit essayer de faire correspondre les attributs de la logique police à celles d'une police physique réelle. Consultez le membre d' lfQuality dans la structure d' LOGFONT dans Kit de développement logiciel Windows pour obtenir une liste de valeurs.nPitchAndFamily
Spécifie le pas et la famille de la police Consultez le membre d' lfPitchAndFamily dans la structure d' LOGFONT dans Kit de développement logiciel Windows pour obtenir une liste de valeurs et de davantage d'informations.lpszFacename
CString ou un pointeur vers une chaîne terminée par le caractère NULL qui spécifie le nom de la police de police. La longueur de la chaîne ne doit pas dépasser 30 caractères. La fonction d' EnumFontFamilies windows peut être utilisée pour énumérer les polices actuellement disponibles. Si lpszFacename est NULL, GDI utilise une police indépendant du périphérique.
Valeur de retour
Une valeur différente de zéro si l'opération a réussi ; sinon 0.
Notes
La police peut ensuite être sélectionnée comme police de n'importe quel contexte de périphérique.
La fonction d' CreateFont ne crée pas de nouvelle police Windows GDI. Il sélectionne simplement la correspondance la plus proche des polices physiques disponibles à GDI.
Les applications peuvent utiliser le paramètre par défaut pour la plupart des paramètres en créant une police logique. Les paramètres qui doivent toujours être fournis des valeurs spécifiques sont nHeight et lpszFacename. Si nHeight et lpszFacename ne sont pas définis par l'application, la police logique créée est du périphérique.
Lorsque vous avez fini d'utiliser l'objet d' CFont créé par la fonction d' CreateFont , utilisez CDC::SelectObject pour sélectionner une police dans le contexte de périphérique, puis supprimez l'objet d' CFont qui n'est plus nécessaire.
Exemple
// 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();
Configuration requise
en-tête : afxwin.h