Label vertical et avec angle de rotation libre(0° à 360°):+ effet transparent (ocx)+ effet 3d + contour text

Soyez le premier à donner votre avis sur cette source.

Vue 10 395 fois - Téléchargée 1 645 fois

Description

J’avais besoin d’un texte incliner de 45°, 60 °, 90°,… Sur ce site il n’existe pas un code qui traite ce besoin. La source de notre ami Renfield
est pas mal du tout (un peu compliquer au niveau code mais elle marche;)) sauf qu’elle ne fait pas les angles appart (0-90-180-270) et avec bug au niveau l’entour du texte en mode transparente :-(.

aAlors, voici une ocx qui permet d’afficher un texte dans tous les angles possibles (allant de 0° à 360°) dans un arrière plan transparent sans problèmes d’affichage du texte ni l’emplacement et avec une très bonne qualité du texte. (voir photo)

Source / Exemple :


'Les apis utilisés sont :

Private Declare Function CreateFontIndirect Lib "gdi32" Alias "CreateFontIndirectA" (lpLogFont As LOGFONT) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Private Declare Function GetTextExtentPoint32 Lib "gdi32" Alias "GetTextExtentPoint32A" (ByVal hdc As Long, ByVal lpsz As String, ByVal cbString As Long, lpSize As Size) As Long
Private Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long

'Les types utilisés sont :

Private Const LF_FACESIZE = 32
Private Type Size
    cX As Long
    cY As Long
End Type
Private Type LOGFONT
    lfHeight As Long
    lfWidth As Long
    lfEscapement As Long
    lfOrientation As Long
    lfWeight As Long
    lfItalic As Byte
    lfUnderline As Byte
    lfStrikeOut As Byte
    lfCharSet As Byte
    lfOutPrecision As Byte
    lfClipPrecision As Byte
    lfQuality As Byte
    lfPitchAndFamily As Byte
    lfFaceName As String * LF_FACESIZE
End Type

' Les apis ajouter (pour la mise à jour) :
Private Declare Function SetTextColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long

'Le reste voir le zip.

Conclusion :


Merci pour vos remarques
a++
davidauche@icqmail.com

Allez, bonne continuation !

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_NISANDSYSTEMS
Messages postés
179
Date d'inscription
vendredi 1 novembre 2002
Statut
Membre
Dernière intervention
9 janvier 2010
-
Il y a ds sources sur ce site qui traite de maniere efficace le sujet.
De plus la source de Renfield qui etant bien etaye, ne presente pas a mon sens, un handicap pour ceux qui souhaiteraient apprendre.

@+
davidauche
Messages postés
150
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
8 janvier 2008
-
j'aime bien voir ces sources (sur ce site et d'autres) qui traitent les label avec des angles libres (type 45, 50 , 220 ,...) et pas seulement les 4 angles les plus facile à faire (0°, 90°,180°,270°) ;).
Je ne suis pas contre la source de Renfield, mais la méthode utilise par Renfield sert à des autres trucs et pas avec les textes (très gourmande au niveau la mémoire pour un simple text). En fait j'ai bien noté la source de Renfield, malgre qu'elle ne gere pas les angles libres + un bug au niveau l'entour du text en mode transparent (ajoute des pixels avec la couleur du backcolor a l'entour du texte en mode transparent).
Pour cela j'ai cree cette ocx qui résoudre tt ces effets avec une autre méthode très simple et efficace sans 2 bugs jusqu'a l'instant.
Peux-tu me donner les adresses des autres sources qui traite ce sujet Stp (question de vérifier et de voir si j'ai cassé la tète durant une soiree entière pour des trucs existe deja :-( si c'est vrai!), j'ai lancé un recherche sur ce site, mais il y a aucune qui fait la rotation d'un 'label' avec une angle libre (autres les 0,90,180,270°)!!, ou je me trompe?!!!!!
Merci à vous
a+
Alextr2003fr
Messages postés
12
Date d'inscription
samedi 30 août 2003
Statut
Membre
Dernière intervention
12 mai 2006
-
marche super et efficace! reste plus qu'à ajouter d'autre petites fonctions pour améliorer:)10/10 ;)
Afyn
Messages postés
613
Date d'inscription
samedi 3 août 2002
Statut
Membre
Dernière intervention
22 décembre 2016
-
Bravo c'est trés bien.
Une précision toutefois, Rendfield a créer un effet de transparence, c'est a dire si un controle est placé sur un autre, on voit les deux par transparence, et on peut régler le degré de transparence de 0 à 255.

Bonne continuation

Afyn
Navedac
pietrocecchi
Messages postés
9
Date d'inscription
samedi 19 juin 2004
Statut
Membre
Dernière intervention
9 mai 2005
-
À mon avis une étiquette idéale devrait se comporter exactement comme une standard à n'importe quel angle (et cela a été presque fait);
Mais ... je vois que le fond de l'étiquette ne suit pas la rotation (je ne peut pas même imaginer comment le faire)...
En tout cas, mon ami, pour la bonne volonté et le travail dur que vous avez fait, je vous donne 10/10 ... :)

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.