GdipCreateFontFromDC()



Syntaxe
Resultat.i = GdipCreateFontFromDC(hdc.i, *font)
Paramètres
hdc.i

[in] Handle d'un device context (contexte de périphérique) Windows.Un Handle est un nombre que Windows utilise en interne pour référencer un objet.

*font

[out] *font recevra le pointeur sur l'objet Font créé à partir du Handle et de la police qui lui est associée.

Description

Cette fonction permet de créer une police basé sur un Handdle d'un contexte de périphérique (hDC). Elle permet une compatibilité avec GDI.

Un contexte de périphérique est une structure qui est maintenue en interne par Windows. Il est associé à un périphérique particulier, tel qu'un moniteur ou une imprimante. Il y a généralement un contexte de périphérique associé à chaque fenêtre affichée sur un moniteur video. Un contexte de périphérique contient des attributs du graphique qui seront utilisés par GDI+.

Dans la plupart des cas lorsque l'on obtient un handle d'un contexte de périphérique avec la fonction GDI+ GdipGetDC() ou dans une Callback en résultat de l'API BeginPaint_(), celui-ci n'aura aucune police sélectionnée. Si vous passez ce type de handle à la fonction, celle-ci échouera (retourne l'erreur GDI+ #NotTrueTypeFont).

A chaque création d'une Font doit correspondre un appel de la fonction GdipDeleteFont() qui permet de libérer les ressources associées à la Font.

L'exemple crée une fenêtre et une police ARIAL mais la police n'est affectée à aucun élément. Le programme essaye de retrouver la police associée au Hdc de la fenêtre mais sans succès, on affiche le résultat de l'erreur puis on sélectionne la police ARIAL dans le DC et on appelle une nouvelle fois la fonction la fonction pour retrouver la police associée au DC et cette fois avec succès. On affiche l'identifiant GDI+ de la police.

Résultat de la fonction
Si la fonction réussit, elle retourne #Ok qui est une constante de l'énumération status.
Si la fonction échoue, elle retourne une des autres valeurs de l'énumération status.
PB - OS

PureBasic v4.30 bêta 4 (Windows - x86)
Testé avec Windows Vista édition familiale Premium