bonjour à tous
dans ma form j'ai définit une région (qui peut etre rectangulaire ou
rectangulaire arrondi).
dans cette région j'ai créeer une zone "entete" rectangulaire, dans cette
derniere j'essaie d'ecrire du texte
mais j'ai un peu de mal pour gerer l'alignement.
j'essaie de faire un truc du genre HautGauche MileuGauche BasGauche (idem
pour droit et centre).
est ce que pouvez m'aidez svp.
Merci
voila un bout de mon code:
?faut il que je continue comme je fait ou y'a d'autre maniére pour gerer
l'alignement?
Sub DrawCaption()
Dim AlignmentCushion As Long '--décalage du texte
Dim ret As Long '--coordonnées
Dim Width As Long
Dim Height As Long
Dim rct As RECT 'rectangle pour coordonnees
AlignmentCushion = 3
'definit la region du header
GetItemClientRect rct, 1, 1, UserControl.ScaleWidth - 2, EnteteHeight
ret = DrawText(UserControl.hDc, strCaption, Len(strCaption), rct,
DT_CALCRECT) '--calcul les coordonnées du rectangle necessaire
Width = rct.Right - rct.Left '--largeur du rectangle du caption
Height = rct.Bottom - rct.Top '--hauteur du rectangle du caption
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
LE TROLL
Salut,
Pas évident d'écrire sur la Form, pourquoi tu ne prends pas des objets mis en 2D, qui en jouant sur les couleurs, se fondraient dans la Form (listBox, TextBox)... ---------
"Flex" a écrit dans le message de news: ef5j0Ou$
bonjour à tous dans ma form j'ai définit une région (qui peut etre rectangulaire ou rectangulaire arrondi). dans cette région j'ai créeer une zone "entete" rectangulaire, dans cette derniere j'essaie d'ecrire du texte mais j'ai un peu de mal pour gerer l'alignement. j'essaie de faire un truc du genre HautGauche MileuGauche BasGauche (idem pour droit et centre). est ce que pouvez m'aidez svp. Merci
voila un bout de mon code: ?faut il que je continue comme je fait ou y'a d'autre maniére pour gerer l'alignement?
Sub DrawCaption() Dim AlignmentCushion As Long '--décalage du texte Dim ret As Long '--coordonnées Dim Width As Long Dim Height As Long
Dim rct As RECT 'rectangle pour coordonnees
AlignmentCushion = 3
'definit la region du header GetItemClientRect rct, 1, 1, UserControl.ScaleWidth - 2, EnteteHeight
ret = DrawText(UserControl.hDc, strCaption, Len(strCaption), rct, DT_CALCRECT) '--calcul les coordonnées du rectangle necessaire Width = rct.Right - rct.Left '--largeur du rectangle du caption Height = rct.Bottom - rct.Top '--hauteur du rectangle du caption
' Case xAlignLeftBottom '--bas gauche rct.Top = EnteteHeight- Height - (AlignmentCushion + 1) rct.Left = AlignmentCushion rct.Bottom = rct.Top + Height rct.Right = rct.Left + Width '...... Case xAlignCenterTop '--haut centre rct.Top = AlignmentCushion rct.Left = CLng((EnteteHeight- Width) / 2) rct.Bottom = rct.Top + Height rct.Right = rct.Left + Width ret = DrawText(UserControl.hDc, strCaption, Len(strCaption), rct, DT_SINGLELINE) End Sub
Private Sub GetItemClientRect(tR As RECT, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) SetRect tR, X1, Y1, X2, Y2 End Sub
Salut,
Pas évident d'écrire sur la Form, pourquoi tu ne prends pas des objets
mis en 2D, qui en jouant sur les couleurs, se fondraient dans la Form
(listBox, TextBox)...
---------
"Flex" <flex@yahoo.co.jp> a écrit dans le message de news:
ef5j0Ou$EHA.3824@TK2MSFTNGP10.phx.gbl...
bonjour à tous
dans ma form j'ai définit une région (qui peut etre rectangulaire ou
rectangulaire arrondi).
dans cette région j'ai créeer une zone "entete" rectangulaire, dans cette
derniere j'essaie d'ecrire du texte
mais j'ai un peu de mal pour gerer l'alignement.
j'essaie de faire un truc du genre HautGauche MileuGauche BasGauche (idem
pour droit et centre).
est ce que pouvez m'aidez svp.
Merci
voila un bout de mon code:
?faut il que je continue comme je fait ou y'a d'autre maniére pour gerer
l'alignement?
Sub DrawCaption()
Dim AlignmentCushion As Long '--décalage du texte
Dim ret As Long '--coordonnées
Dim Width As Long
Dim Height As Long
Dim rct As RECT 'rectangle pour coordonnees
AlignmentCushion = 3
'definit la region du header
GetItemClientRect rct, 1, 1, UserControl.ScaleWidth - 2, EnteteHeight
ret = DrawText(UserControl.hDc, strCaption, Len(strCaption), rct,
DT_CALCRECT) '--calcul les coordonnées du rectangle necessaire
Width = rct.Right - rct.Left '--largeur du rectangle du caption
Height = rct.Bottom - rct.Top '--hauteur du rectangle du caption
Pas évident d'écrire sur la Form, pourquoi tu ne prends pas des objets mis en 2D, qui en jouant sur les couleurs, se fondraient dans la Form (listBox, TextBox)... ---------
"Flex" a écrit dans le message de news: ef5j0Ou$
bonjour à tous dans ma form j'ai définit une région (qui peut etre rectangulaire ou rectangulaire arrondi). dans cette région j'ai créeer une zone "entete" rectangulaire, dans cette derniere j'essaie d'ecrire du texte mais j'ai un peu de mal pour gerer l'alignement. j'essaie de faire un truc du genre HautGauche MileuGauche BasGauche (idem pour droit et centre). est ce que pouvez m'aidez svp. Merci
voila un bout de mon code: ?faut il que je continue comme je fait ou y'a d'autre maniére pour gerer l'alignement?
Sub DrawCaption() Dim AlignmentCushion As Long '--décalage du texte Dim ret As Long '--coordonnées Dim Width As Long Dim Height As Long
Dim rct As RECT 'rectangle pour coordonnees
AlignmentCushion = 3
'definit la region du header GetItemClientRect rct, 1, 1, UserControl.ScaleWidth - 2, EnteteHeight
ret = DrawText(UserControl.hDc, strCaption, Len(strCaption), rct, DT_CALCRECT) '--calcul les coordonnées du rectangle necessaire Width = rct.Right - rct.Left '--largeur du rectangle du caption Height = rct.Bottom - rct.Top '--hauteur du rectangle du caption
' Case xAlignLeftBottom '--bas gauche rct.Top = EnteteHeight- Height - (AlignmentCushion + 1) rct.Left = AlignmentCushion rct.Bottom = rct.Top + Height rct.Right = rct.Left + Width '...... Case xAlignCenterTop '--haut centre rct.Top = AlignmentCushion rct.Left = CLng((EnteteHeight- Width) / 2) rct.Bottom = rct.Top + Height rct.Right = rct.Left + Width ret = DrawText(UserControl.hDc, strCaption, Len(strCaption), rct, DT_SINGLELINE) End Sub
Private Sub GetItemClientRect(tR As RECT, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) SetRect tR, X1, Y1, X2, Y2 End Sub
Flex
merci le troll pourquoi je ne prends pas des objets? Tout simplement parce qu'il s'agit d'un controle activex et quelqu'un ma dit une fois sur ce newsgroup qu'il valait mieux créer les controles en évitant d'incorporer d'autres objets.
en fouillant un peu plus je crois que c'est mon api DrawText qui me renvoie 0 donc je vais chercher par la. Merci encore
"LE TROLL" <le a écrit dans le message de news: uT3I%23Ax$
Salut,
Pas évident d'écrire sur la Form, pourquoi tu ne prends pas des objets mis en 2D, qui en jouant sur les couleurs, se fondraient dans la Form (listBox, TextBox)... ---------
"Flex" a écrit dans le message de news: ef5j0Ou$
bonjour à tous dans ma form j'ai définit une région (qui peut etre rectangulaire ou rectangulaire arrondi). dans cette région j'ai créeer une zone "entete" rectangulaire, dans cette derniere j'essaie d'ecrire du texte mais j'ai un peu de mal pour gerer l'alignement. j'essaie de faire un truc du genre HautGauche MileuGauche BasGauche (idem pour droit et centre). est ce que pouvez m'aidez svp. Merci
voila un bout de mon code: ?faut il que je continue comme je fait ou y'a d'autre maniére pour gerer l'alignement?
Sub DrawCaption() Dim AlignmentCushion As Long '--décalage du texte Dim ret As Long '--coordonnées Dim Width As Long Dim Height As Long
Dim rct As RECT 'rectangle pour coordonnees
AlignmentCushion = 3
'definit la region du header GetItemClientRect rct, 1, 1, UserControl.ScaleWidth - 2, EnteteHeight
ret = DrawText(UserControl.hDc, strCaption, Len(strCaption), rct, DT_CALCRECT) '--calcul les coordonnées du rectangle necessaire Width = rct.Right - rct.Left '--largeur du rectangle du caption Height = rct.Bottom - rct.Top '--hauteur du rectangle du caption
' Case xAlignLeftBottom '--bas gauche rct.Top = EnteteHeight- Height - (AlignmentCushion + 1) rct.Left = AlignmentCushion rct.Bottom = rct.Top + Height rct.Right = rct.Left + Width '...... Case xAlignCenterTop '--haut centre rct.Top = AlignmentCushion rct.Left = CLng((EnteteHeight- Width) / 2) rct.Bottom = rct.Top + Height rct.Right = rct.Left + Width ret = DrawText(UserControl.hDc, strCaption, Len(strCaption), rct, DT_SINGLELINE) End Sub
Private Sub GetItemClientRect(tR As RECT, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) SetRect tR, X1, Y1, X2, Y2 End Sub
merci le troll
pourquoi je ne prends pas des objets?
Tout simplement parce qu'il s'agit d'un controle activex et quelqu'un ma dit
une fois sur ce newsgroup qu'il valait mieux créer les controles en évitant
d'incorporer d'autres objets.
en fouillant un peu plus je crois que c'est mon api DrawText qui me renvoie
0 donc je vais chercher par la.
Merci encore
"LE TROLL" <le troll@paris.fr> a écrit dans le message de news:
uT3I%23Ax$EHA.1260@TK2MSFTNGP12.phx.gbl...
Salut,
Pas évident d'écrire sur la Form, pourquoi tu ne prends pas des objets
mis en 2D, qui en jouant sur les couleurs, se fondraient dans la Form
(listBox, TextBox)...
---------
"Flex" <flex@yahoo.co.jp> a écrit dans le message de news:
ef5j0Ou$EHA.3824@TK2MSFTNGP10.phx.gbl...
bonjour à tous
dans ma form j'ai définit une région (qui peut etre rectangulaire ou
rectangulaire arrondi).
dans cette région j'ai créeer une zone "entete" rectangulaire, dans
cette derniere j'essaie d'ecrire du texte
mais j'ai un peu de mal pour gerer l'alignement.
j'essaie de faire un truc du genre HautGauche MileuGauche BasGauche (idem
pour droit et centre).
est ce que pouvez m'aidez svp.
Merci
voila un bout de mon code:
?faut il que je continue comme je fait ou y'a d'autre maniére pour gerer
l'alignement?
Sub DrawCaption()
Dim AlignmentCushion As Long '--décalage du texte
Dim ret As Long '--coordonnées
Dim Width As Long
Dim Height As Long
Dim rct As RECT 'rectangle pour coordonnees
AlignmentCushion = 3
'definit la region du header
GetItemClientRect rct, 1, 1, UserControl.ScaleWidth - 2, EnteteHeight
ret = DrawText(UserControl.hDc, strCaption, Len(strCaption), rct,
DT_CALCRECT) '--calcul les coordonnées du rectangle necessaire
Width = rct.Right - rct.Left '--largeur du rectangle du caption
Height = rct.Bottom - rct.Top '--hauteur du rectangle du caption
merci le troll pourquoi je ne prends pas des objets? Tout simplement parce qu'il s'agit d'un controle activex et quelqu'un ma dit une fois sur ce newsgroup qu'il valait mieux créer les controles en évitant d'incorporer d'autres objets.
en fouillant un peu plus je crois que c'est mon api DrawText qui me renvoie 0 donc je vais chercher par la. Merci encore
"LE TROLL" <le a écrit dans le message de news: uT3I%23Ax$
Salut,
Pas évident d'écrire sur la Form, pourquoi tu ne prends pas des objets mis en 2D, qui en jouant sur les couleurs, se fondraient dans la Form (listBox, TextBox)... ---------
"Flex" a écrit dans le message de news: ef5j0Ou$
bonjour à tous dans ma form j'ai définit une région (qui peut etre rectangulaire ou rectangulaire arrondi). dans cette région j'ai créeer une zone "entete" rectangulaire, dans cette derniere j'essaie d'ecrire du texte mais j'ai un peu de mal pour gerer l'alignement. j'essaie de faire un truc du genre HautGauche MileuGauche BasGauche (idem pour droit et centre). est ce que pouvez m'aidez svp. Merci
voila un bout de mon code: ?faut il que je continue comme je fait ou y'a d'autre maniére pour gerer l'alignement?
Sub DrawCaption() Dim AlignmentCushion As Long '--décalage du texte Dim ret As Long '--coordonnées Dim Width As Long Dim Height As Long
Dim rct As RECT 'rectangle pour coordonnees
AlignmentCushion = 3
'definit la region du header GetItemClientRect rct, 1, 1, UserControl.ScaleWidth - 2, EnteteHeight
ret = DrawText(UserControl.hDc, strCaption, Len(strCaption), rct, DT_CALCRECT) '--calcul les coordonnées du rectangle necessaire Width = rct.Right - rct.Left '--largeur du rectangle du caption Height = rct.Bottom - rct.Top '--hauteur du rectangle du caption