Ajout de fonts par API [Résolu]

Messages postés
75
Date d'inscription
mardi 22 avril 2008
Dernière intervention
15 juillet 2015
- 27 janv. 2010 à 13:40 - Dernière réponse :
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 26 févr. 2012 à 18:48
Bonjour à tous...
J'essaye à l'heure actuelle d'utiliser des polices de caractères sans les installer préalablement dans le dossier fonts de windows...

Sur ma form1 j'ai déclaré un label avec une police de carctère spécifique, puis j'ai supprimé celle-ci (méthode bourrin)...

J'essaye ensuite de la déclarer par programme de manière à ce que le label affiche ensuite la bonne police...

j'utilise pour ça les API AddFontResource et SendMessage...

Cf le code :

Imports System.IO

Public Class Form1
Public Const WM_FONTCHANGE = &H1D
Public Const HWND_BROADCAST = 65535

Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Object) As Long
Declare Function AddFontResourceEx Lib "gdi32" Alias "AddFontResourceA" (ByVal lpFileName As String) As Integer

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim Path As String = Directory.GetCurrentDirectory + "\TT0362M_.TTF"

If Not AddFontResourceEx(Path) = 0 Then
Try
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0)
Catch ex As Exception
Throw ex
End Try

RadioButton1.Checked = True
Else
RadioButton1.Checked = False
End If
End Sub
End Class


Et évidemment ça ne marche pas...
Le but est de faire en sorte que l'appli soit autonome et portable...

Système Win Xp, vista, seven
Visual basic 2008 express

Merci pour votre aide...
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Messages postés
90
Date d'inscription
lundi 16 décembre 2002
Dernière intervention
1 février 2011
- 29 janv. 2010 à 10:15
3
Merci
Bonjour,
Allez pleure pas

Public  _Drawing_PFC As Drawing.Text.PrivateFontCollection

Public Function CreateFontFile(ByVal NameFontFile As String, ByVal style As Drawing.FontStyle, ByVal size As Single, ByVal unit As Drawing.GraphicsUnit) As Drawing.Font
        _Drawing_PFC = New Drawing.Text.PrivateFontCollection
        _Drawing_PFC.AddFontFile(NameFontFile)
        Return New Drawing.Font(_Drawing_PFC.Families(0), size, style, unit)
End Function


'Exemple d'utilisation
Dim fontfile As String = (apath & "\NewFont.ttf")
Label1.Font = CreateFontResource(fontfile, FontStyle.Regular, 12, GraphicsUnit.Point)


ATTENTION, la variable _Drawing_PFC doit être
accessible quand on à créer une fonte,
sinon erreur lors du rafraîchissement de la fenêtre

Merci cs_Tropic 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de cs_Tropic
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 27 janv. 2010 à 13:43
0
Merci
Bonjour,

Déjà et avant d'aller aui delà :
VBV.Net ? ===>> pas de Long mais des Integer !

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Commenter la réponse de ucfoutu
Messages postés
75
Date d'inscription
mardi 22 avril 2008
Dernière intervention
15 juillet 2015
- 27 janv. 2010 à 14:28
0
Merci
Effectivement...
Corrigé mais sans différence dans le résultat...
Commenter la réponse de Zayann
Messages postés
75
Date d'inscription
mardi 22 avril 2008
Dernière intervention
15 juillet 2015
- 27 janv. 2010 à 20:28
0
Merci
Personne...
Commenter la réponse de Zayann
Messages postés
75
Date d'inscription
mardi 22 avril 2008
Dernière intervention
15 juillet 2015
- 3 févr. 2010 à 07:40
0
Merci
Merci !!!
Beaucoup !!!
It's running well...
Commenter la réponse de Zayann
Messages postés
9
Date d'inscription
dimanche 24 mai 2009
Dernière intervention
27 février 2012
- 26 févr. 2012 à 14:05
0
Merci
Bonjour,

je prépare mon n stage de fin d'études dont le sujet est de réaliser une application en vb.net avec une base de données en Sqlserver qui consiste à récuperer des données d'un automate et les stocker dans la BDD, c a d qui a une sorte de communication entre l'automate et la BDD, cet automate est lié aussi à des machines. le problème c'est que j'arrive pas à comprendre comment ces données seront ecrites dans la BDD et comment vont etres traduites?
Commenter la réponse de sarittasm
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 26 févr. 2012 à 15:13
0
Merci
Bonjour, sarritsasm,

et tu as besoin, bien évidemment, pour ton projet, d'ajouter des polices et c'est là ton seul problème ?
Si oui : tu as eu la réponse
si autre : que viens-tu faire dans cette discussion ?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
9
Date d'inscription
dimanche 24 mai 2009
Dernière intervention
27 février 2012
- 26 févr. 2012 à 18:45
0
Merci
bonjour ucfoutu,

désolée j'ai rien compris à ta reponse
Commenter la réponse de sarittasm
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 26 févr. 2012 à 18:48
0
Merci
Je compatis donc (pour au moins deux raisons, maintenant).
bonne chance


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.