Ajout de fonts par API [Résolu]

Zayann 75 Messages postés mardi 22 avril 2008Date d'inscription 15 juillet 2015 Dernière intervention - 27 janv. 2010 à 13:40 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention
- 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
cs_Tropic 90 Messages postés lundi 16 décembre 2002Date d'inscription 1 février 2011 Dernière intervention - 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é 97 internautes ce mois-ci

Commenter la réponse de cs_Tropic
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 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
Zayann 75 Messages postés mardi 22 avril 2008Date d'inscription 15 juillet 2015 Dernière intervention - 27 janv. 2010 à 14:28
0
Merci
Effectivement...
Corrigé mais sans différence dans le résultat...
Commenter la réponse de Zayann
Zayann 75 Messages postés mardi 22 avril 2008Date d'inscription 15 juillet 2015 Dernière intervention - 27 janv. 2010 à 20:28
0
Merci
Personne...
Commenter la réponse de Zayann
Zayann 75 Messages postés mardi 22 avril 2008Date d'inscription 15 juillet 2015 Dernière intervention - 3 févr. 2010 à 07:40
0
Merci
Merci !!!
Beaucoup !!!
It's running well...
Commenter la réponse de Zayann
sarittasm 9 Messages postés dimanche 24 mai 2009Date d'inscription 27 février 2012 Dernière intervention - 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
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 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
sarittasm 9 Messages postés dimanche 24 mai 2009Date d'inscription 27 février 2012 Dernière intervention - 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
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 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.