Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : gdi+ Rotate font [ Windows / API ] (peug)

mercredi 9 juillet 2008 à 17:57:17 | gdi+ Rotate font

peug

Membre Club

Avé !
Je bidouille en vain pour parvenir à maitriser la rotation d'un texte avec GDI Plus, voici la fonction (qui marche pas pour la rotation => coordonnées ). Vous avez une idée ? merci

Public Sub DrawPrint2(ByRef oDest As Object, ByVal hdc As Long, ByVal Texte As String, ByVal x As Long, ByVal y As Long, _
                    ByVal FontColor As Long, ByVal Gras As Boolean, _
                    Optional ByVal lWidth As Long = 200, Optional ByVal lHeight As Long = 50, _
                    Optional ByVal Gauche As Boolean = True, Optional ByVal Italic As Boolean = False, Optional ByVal lSize As Long = 13, Optional ByVal lAngle As Long, _
                    Optional ByVal bAlignLibelleLeft As Boolean = False)
    '
    If Texte = vbNullString Then Exit Sub

    Dim hGraphics As Long
    Dim hFontFamily As Long
    Dim hFont As Long
    Dim hBrush As Long
    Dim hStringFormat As Long
    Dim lpR As GpRECTF
    Dim lpR2 As GpRECTF
    Dim eFontStyle As GpFontStyle

    GdipCreateFromHDC hdc, hGraphics

    GdipCreateSolidFill ByVal FontColor, hBrush
    GdipCreateFontFamilyFromName "Calibri", 0, hFontFamily
   
    If Gras Then
        If Italic Then
            eFontStyle = FontStyleBoldItalic
        Else
            eFontStyle = FontStyleBold
        End If
    Else
        If Italic Then
            eFontStyle = FontStyleItalic
        Else
            eFontStyle = FontStyleRegular
        End If
       
    End If
   
    If lAngle <> 0 Then
        GdipTranslateWorldTransform hGraphics, x * 3, y * 2, MatrixOrderPrepend
        GdipRotateWorldTransform hGraphics, -lAngle, 0 'MatrixOrderAppend
    End If
   
    GdipCreateFont hFontFamily, lSize, eFontStyle, UnitPixel, hFont
   
   
   
    GdipCreateStringFormat 0, 0, hStringFormat
   
    lpR.left = x
    lpR.top = y
    lpR.Width = lWidth
    lpR.Height = lHeight
 
    'GdipMeasureString hGraphics, StrConv(Texte, vbUnicode), -1, hFont, lpR, hStringFormat, lpR, 0, 0
    GdipSetTextRenderingHint hGraphics, TextRenderingHintAntiAliasGridFit
    GdipDrawString hGraphics, Texte, -1, hFont, lpR, hStringFormat, hBrush

    GdipDeleteStringFormat hStringFormat
    GdipDeleteFont hFont
    GdipDeleteFontFamily hFontFamily
    GdipDeleteBrush hBrush
    GdipDeleteGraphics hGraphics
End Sub


mercredi 9 juillet 2008 à 20:14:27 | Re : gdi+ Rotate font

Renfield

Administrateur CodeS-SourceS
Réponse acceptée !
salut l'ami

va voir ma source

http://www.vbfrance.com/codes/EXEMPLE-UTILISATION-GDI-DANS-VB6_39804.aspx

y'a un exemple d'utilisation de GdipTransformPoints

te permettra de passer les coordonnées de et vers le monde...

jeudi 10 juillet 2008 à 08:33:07 | Re : gdi+ Rotate font

peug

Membre Club

Salut Maître !
Bon et bien que dire de plus... 

voici juste la modif...
    lpOrg.x = x
    lpOrg.y = y
    If lAngle <> 0 Then
        GdipRotateWorldTransform hGraphics, lAngle, MatrixOrderPrepend
        GdipTransformPoints hGraphics, CoordinateSpaceWorld, CoordinateSpaceDevice, lpOrg, 1
    End If

N'empêche y'a t il un truc que tu ne connaisses pas ?

Bon sinon, as-tu une mise à jour de Win32API.tlb ?
Car je ne sais pas créer les tlb... l'idéal serait que tu m'apprends ("on lui donne le beurre et il veut la crémière en plus" )
Allez super merci


jeudi 10 juillet 2008 à 08:41:31 | Re : gdi+ Rotate font
jeudi 10 juillet 2008 à 09:46:23 | Re : gdi+ Rotate font

Renfield

Administrateur CodeS-SourceS
que je ne connaisse pas ?

oh que oui ! et heureusement, ce serai triste, sans cela ^^ sans cesse en R&D

pour exemple, actuellement, je joues a générer des PDF

disons qu'on a des points d'intérêt croisés, et que je suis passé par la cas "je suis en GDI+ et je veux changer mes coordonnées" ^^

jeudi 10 juillet 2008 à 09:51:26 | Re : gdi+ Rotate font

peug

Membre Club
oui, tu as 100 TGV d'avance avec 10 ans de mois, quelle horreur !

Coté PDF, j'ai trouvé cette source récemment que j'ai mis sous le coude : http://www.vbfrance.com/codes/SANZEREUR-CORRECTEUR-ORTHOGRAPHIQUE_40715.aspx
J'ai seulement regretté la structure du code mais ça marche.

jeudi 10 juillet 2008 à 10:14:57 | Re : gdi+ Rotate font

Renfield

Administrateur CodeS-SourceS
sympa.... mais le code coté PDF semble pire que celui de WSPDF, et ça n'est pas peu dire ^^
http://www.vbfrance.com/codes/WSPDF-CLASSE-GENERATION-FICHIER-PDF-SANS-OCX-NI_25958.aspx

le code semble rigide, avec les numéros des objets PDF en dur, etc.


En fait, je travaille depuis quelques années dans l'éditique. J'ai l'expérience de composeurs professionnels - rien a voir avec les Crystal Report et consorts, je parle de choses bien plus souples.
J'ai un point de vue enrichi par l'expérience, et j'ajoute des choses simples dans ma dll de génération PDF. Je ne pense pas livrer les sources, mais je vais voir pour en fournir l'usage libre pour les projets non commerciaux.

elle avance bien, et sera surement greffée à un module qui la pilote, afin de générer des états et autres correspondances.


jeudi 10 juillet 2008 à 10:23:30 | Re : gdi+ Rotate font

peug

Membre Club
Quel entreprise, l'an passé j'ai passé je ne sais combien de mois pour maitrise l'impression à l"écran et sur le papier pour créer un aperçu avant impression digne de ce nom ! et mon prochain challange sera en effet de l'amélioré vers directement l'envoyer enb PDF, j'avais vu WSPDF mais je m'en souvenais plus et en effet pas photo

jeudi 10 juillet 2008 à 16:01:11 | Re : gdi+ Rotate font

peug

Membre Club
Flute, je vient de me rendre compte que la rotation c'est pas bon ! grrrr

En fait j'essaie de faire comme une ombre du texte donc c'est un flipY... as-tu une idée l'a dessus ?

jeudi 10 juillet 2008 à 16:37:24 | Re : gdi+ Rotate font

Renfield

Administrateur CodeS-SourceS
flipY ? je ne te suis pas...

normallement, juste un peu de translation... (gaffe a l'ordre des transformations)


1 2

Cette discussion est classé dans : long, optional, lpr, if, byval


Répondre à ce message

Sujets en rapport avec ce message

Couleur de fond d'un contrôle slider [ par Leo_Robotic_Passion ] Bonjour a tous Quelqu'un peut me dire dans un 1er temps si il y a un incon Besoin d'aide pour mon projet VBA [ par Eleasias ] Je suis novice comme certains le savent déjà et je dois faire une macro VBA dans le cadre de mon stage.Quelques un d'entre vous m'ont déjà aidé et je Récupération des variables [ par Dominike ] Bonjour à tous !Je savais que je me lançais dans un projet au-dessus de mes compétences, mais c'est à mon avis comme cela comme apprend.Bref, après av Client server Vb .net [ par Hamz01 ] slt tout le monde, je viens de devellopper une interface qui permets de comuniquer avec un pc distant via le reseau. En effet, au niveau de l'interfa Numéro de série de disque [ par Marneus73 ] Bonjour à tous,J'ai trouvé ce code sur le forum pour récupperer la numéro de série d'un disque dur. Private Declare Function GetVolumeInformation Lib Affiché correctement de l'UTF-8 (VB6) [ par Polack77 ] Bonjour Alors voila j'ai beau cherché un peut partout je n'arrive pas à trouvé quelque chose qui me conviens (en même temps c'est vrais que je suis un coflit GetObject [ par peug ] Salut !Dans mon code, j'ai un conflit entre l'appel de Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") qui vient de GetObject([PathName], [Cl Bug affichage [ par victor110 ] BonjourLorsque je lance mon programme pour télécharger un fichier:[code]Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFi Erreur de compliation: nom ambigu détecté : CreateRoundRectRgn [ par Rido159 ] Bonjour je suis débutant en vb ,j 'essaye de crée un client d un chat vocal pour un serveur j'ai rencontré un probléme genre:  Erreur de compliation: Chemin d'accès dans une dll [ par ganon22 ] Bonjour tout le monde, Je me retourne vers vous, car j'hésite et je cale sur un point Je suis en train de créé un programme qui permet de rentrer dans


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,312 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.