Ajout de fonts par API

Résolu
Zayann Messages postés 75 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 15 juillet 2015 - 27 janv. 2010 à 13:40
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur 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...

9 réponses

cs_Tropic Messages postés 90 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 1 février 2011
29 janv. 2010 à 10:15
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
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 228
27 janv. 2010 à 13:43
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
0
Zayann Messages postés 75 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 15 juillet 2015 1
27 janv. 2010 à 14:28
Effectivement...
Corrigé mais sans différence dans le résultat...
0
Zayann Messages postés 75 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 15 juillet 2015 1
27 janv. 2010 à 20:28
Personne...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Zayann Messages postés 75 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 15 juillet 2015 1
3 févr. 2010 à 07:40
Merci !!!
Beaucoup !!!
It's running well...
0
sarittasm Messages postés 9 Date d'inscription dimanche 24 mai 2009 Statut Membre Dernière intervention 27 février 2012
26 févr. 2012 à 14:05
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?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 228
26 févr. 2012 à 15:13
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
0
sarittasm Messages postés 9 Date d'inscription dimanche 24 mai 2009 Statut Membre Dernière intervention 27 février 2012
26 févr. 2012 à 18:45
bonjour ucfoutu,

désolée j'ai rien compris à ta reponse
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 228
26 févr. 2012 à 18:48
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
0