J'ai un programme dans lequel j'ai inséré une richtextbox.
Arrivé à la fin d'un ligne, comme je n'ai pas mis de barre horizontale, le
mot revient à la ligne, et c'est ce que je veux.
En revanche si un mot n'est pas fini il est mis entièrement à la ligne. Je
voudrai modifier le word wrap pour que le mot se coupe automatiquement et
que uniquement l'autre moitié revienne à la ligne.
'attention aux scrollbars, test réalisé sans 'il faudra faire des ajustement en conséquence 'de plus si le textbox à une taille fixe, cette 'valeur pourra être fixée définitivement, elle 'représente le nombre de caractère sur une ligne 'lNbLargeurChar = 51 lNbLargeurChar = Text1.Width / Me.TextWidth(" ") - 1
For i = 1 To Len(sText) Step lNbLargeurChar - 1 If i + lNbLargeurChar - 1 >= Len(sText) Then sOut = sOut & Mid$(sText, i, lNbLargeurChar - 1) Else sOut = sOut & Mid$(sText, i, lNbLargeurChar - 1) & "-" & vbCrLf End If Next
Text1.Text = sOut
'Text1.SelStart = lPos
sOut = "": sText = "" End Sub
J'ai essayé, mais le problème c'est que le texte s'écrit à l'envers, exemple je tape azerty, il s'écrit ytreza ;-) De plus, ça ne coupe toujours pas. Par contre le tiret se met correctement
> Option Explicit
Private Sub Text1_Change()
'text1 doit avoir une font à largeur fixe
'multiligne = true
Dim i As Integer, tblLignes() As String, sText As String
Dim sOut As String, lNbLargeurChar As Long
'attention aux scrollbars, test réalisé sans
'il faudra faire des ajustement en conséquence
'de plus si le textbox à une taille fixe, cette
'valeur pourra être fixée définitivement, elle
'représente le nombre de caractère sur une ligne
'lNbLargeurChar = 51
lNbLargeurChar = Text1.Width / Me.TextWidth(" ") - 1
For i = 1 To Len(sText) Step lNbLargeurChar - 1
If i + lNbLargeurChar - 1 >= Len(sText) Then
sOut = sOut & Mid$(sText, i, lNbLargeurChar - 1)
Else
sOut = sOut & Mid$(sText, i, lNbLargeurChar - 1) & "-" & vbCrLf
End If
Next
Text1.Text = sOut
'Text1.SelStart = lPos
sOut = "": sText = ""
End Sub
J'ai essayé, mais le problème c'est que le texte s'écrit à l'envers, exemple
je tape azerty, il s'écrit ytreza ;-)
De plus, ça ne coupe toujours pas. Par contre le tiret se met correctement
'attention aux scrollbars, test réalisé sans 'il faudra faire des ajustement en conséquence 'de plus si le textbox à une taille fixe, cette 'valeur pourra être fixée définitivement, elle 'représente le nombre de caractère sur une ligne 'lNbLargeurChar = 51 lNbLargeurChar = Text1.Width / Me.TextWidth(" ") - 1
For i = 1 To Len(sText) Step lNbLargeurChar - 1 If i + lNbLargeurChar - 1 >= Len(sText) Then sOut = sOut & Mid$(sText, i, lNbLargeurChar - 1) Else sOut = sOut & Mid$(sText, i, lNbLargeurChar - 1) & "-" & vbCrLf End If Next
Text1.Text = sOut
'Text1.SelStart = lPos
sOut = "": sText = "" End Sub
J'ai essayé, mais le problème c'est que le texte s'écrit à l'envers, exemple je tape azerty, il s'écrit ytreza ;-) De plus, ça ne coupe toujours pas. Par contre le tiret se met correctement
Cédric
J'avais une idée, c'était de stocker tout le texte entré dans une chaine, et de la découper à chaque instant en paquet de 40 en prenant les 40 premiers caractères à gauche à chaque fois. Mais à mon avis c'est vite limité en taille, non? Et puis il doit y avoir beaucoup mieux je pense
J'avais une idée, c'était de stocker tout le texte entré dans une chaine, et
de la découper à chaque instant en paquet de 40 en prenant les 40 premiers
caractères à gauche à chaque fois. Mais à mon avis c'est vite limité en
taille, non? Et puis il doit y avoir beaucoup mieux je pense
J'avais une idée, c'était de stocker tout le texte entré dans une chaine, et de la découper à chaque instant en paquet de 40 en prenant les 40 premiers caractères à gauche à chaque fois. Mais à mon avis c'est vite limité en taille, non? Et puis il doit y avoir beaucoup mieux je pense
ng
Salut,
J'ai essayé, mais le problème c'est que le texte s'écrit à l'envers, exemple je tape azerty, il s'écrit ytreza ;-)
C'est parce que le SelStart se remet à 0 à chauqe changement, décommente les lignes le concernant.
De plus, ça ne coupe toujours pas. Par contre le tiret se met correctement
Si ! ??
J'ai ceci par exemple :
salut ceci e- st un test d- e découpage !
ca semble fo- nctionner co- rrectement n- on ?
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Cédric a écrit :
Option Explicit
Private Sub Text1_Change()
'text1 doit avoir une font à largeur fixe 'multiligne = true
Dim i As Integer, tblLignes() As String, sText As String Dim sOut As String, lNbLargeurChar As Long
'attention aux scrollbars, test réalisé sans 'il faudra faire des ajustement en conséquence 'de plus si le textbox à une taille fixe, cette 'valeur pourra être fixée définitivement, elle 'représente le nombre de caractère sur une ligne 'lNbLargeurChar = 51 lNbLargeurChar = Text1.Width / Me.TextWidth(" ") - 1
For i = 1 To Len(sText) Step lNbLargeurChar - 1 If i + lNbLargeurChar - 1 >= Len(sText) Then sOut = sOut & Mid$(sText, i, lNbLargeurChar - 1) Else sOut = sOut & Mid$(sText, i, lNbLargeurChar - 1) & "-" & vbCrLf End If Next
Text1.Text = sOut
'Text1.SelStart = lPos
sOut = "": sText = "" End Sub
J'ai essayé, mais le problème c'est que le texte s'écrit à l'envers, exemple je tape azerty, il s'écrit ytreza ;-) De plus, ça ne coupe toujours pas. Par contre le tiret se met correctement
Salut,
J'ai essayé, mais le problème c'est que le texte s'écrit à l'envers,
exemple je tape azerty, il s'écrit ytreza ;-)
C'est parce que le SelStart se remet à 0 à chauqe changement, décommente les
lignes le concernant.
De plus, ça ne coupe toujours pas. Par contre le tiret se met
correctement
Si ! ??
J'ai ceci par exemple :
salut ceci e-
st un test d-
e découpage !
ca semble fo-
nctionner co-
rrectement n-
on ?
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Cédric <cedrik702@_inv_alid_hotmail.com> a écrit :
Option Explicit
Private Sub Text1_Change()
'text1 doit avoir une font à largeur fixe
'multiligne = true
Dim i As Integer, tblLignes() As String, sText As String
Dim sOut As String, lNbLargeurChar As Long
'attention aux scrollbars, test réalisé sans
'il faudra faire des ajustement en conséquence
'de plus si le textbox à une taille fixe, cette
'valeur pourra être fixée définitivement, elle
'représente le nombre de caractère sur une ligne
'lNbLargeurChar = 51
lNbLargeurChar = Text1.Width / Me.TextWidth(" ") - 1
For i = 1 To Len(sText) Step lNbLargeurChar - 1
If i + lNbLargeurChar - 1 >= Len(sText) Then
sOut = sOut & Mid$(sText, i, lNbLargeurChar - 1)
Else
sOut = sOut & Mid$(sText, i, lNbLargeurChar - 1) & "-" &
vbCrLf End If
Next
Text1.Text = sOut
'Text1.SelStart = lPos
sOut = "": sText = ""
End Sub
J'ai essayé, mais le problème c'est que le texte s'écrit à l'envers,
exemple je tape azerty, il s'écrit ytreza ;-)
De plus, ça ne coupe toujours pas. Par contre le tiret se met
correctement
J'ai essayé, mais le problème c'est que le texte s'écrit à l'envers, exemple je tape azerty, il s'écrit ytreza ;-)
C'est parce que le SelStart se remet à 0 à chauqe changement, décommente les lignes le concernant.
De plus, ça ne coupe toujours pas. Par contre le tiret se met correctement
Si ! ??
J'ai ceci par exemple :
salut ceci e- st un test d- e découpage !
ca semble fo- nctionner co- rrectement n- on ?
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Cédric a écrit :
Option Explicit
Private Sub Text1_Change()
'text1 doit avoir une font à largeur fixe 'multiligne = true
Dim i As Integer, tblLignes() As String, sText As String Dim sOut As String, lNbLargeurChar As Long
'attention aux scrollbars, test réalisé sans 'il faudra faire des ajustement en conséquence 'de plus si le textbox à une taille fixe, cette 'valeur pourra être fixée définitivement, elle 'représente le nombre de caractère sur une ligne 'lNbLargeurChar = 51 lNbLargeurChar = Text1.Width / Me.TextWidth(" ") - 1
For i = 1 To Len(sText) Step lNbLargeurChar - 1 If i + lNbLargeurChar - 1 >= Len(sText) Then sOut = sOut & Mid$(sText, i, lNbLargeurChar - 1) Else sOut = sOut & Mid$(sText, i, lNbLargeurChar - 1) & "-" & vbCrLf End If Next
Text1.Text = sOut
'Text1.SelStart = lPos
sOut = "": sText = "" End Sub
J'ai essayé, mais le problème c'est que le texte s'écrit à l'envers, exemple je tape azerty, il s'écrit ytreza ;-) De plus, ça ne coupe toujours pas. Par contre le tiret se met correctement
Cédric
Oui merci, avec ca, la première ligne est parfaite, mais ça marche plus à partir de la deuxième: ca se remet à écrire à l'envers, de plus le tiret est présent un carctère sur 2. Il doit y avoir un problème dans le compteur
Je vous met le code:
Option Explicit
Private Sub Text1_Change()
Dim i As Integer, tblLignes() As String, sText As String Dim sOut As String, lNbLargeurChar As Long
For i = 1 To Len(sText) Step lNbLargeurChar - 1 If i + lNbLargeurChar - 1 >= Len(sText) Then sOut = sOut & Mid$(sText, i, lNbLargeurChar - 1) Else sOut = sOut & Mid$(sText, i, lNbLargeurChar - 1) & "-" & vbCrLf End If Next
Text1.Text = sOut
Text1.SelStart = lPos
sOut = "": sText = "" End Sub
Oui merci, avec ca, la première ligne est parfaite, mais ça marche plus à
partir de la deuxième: ca se remet à écrire à l'envers, de plus le tiret est
présent un carctère sur 2. Il doit y avoir un problème dans le compteur
Je vous met le code:
Option Explicit
Private Sub Text1_Change()
Dim i As Integer, tblLignes() As String, sText As String
Dim sOut As String, lNbLargeurChar As Long
For i = 1 To Len(sText) Step lNbLargeurChar - 1
If i + lNbLargeurChar - 1 >= Len(sText) Then
sOut = sOut & Mid$(sText, i, lNbLargeurChar - 1)
Else
sOut = sOut & Mid$(sText, i, lNbLargeurChar - 1) & "-" & vbCrLf
End If
Next
Oui merci, avec ca, la première ligne est parfaite, mais ça marche plus à partir de la deuxième: ca se remet à écrire à l'envers, de plus le tiret est présent un carctère sur 2. Il doit y avoir un problème dans le compteur
Je vous met le code:
Option Explicit
Private Sub Text1_Change()
Dim i As Integer, tblLignes() As String, sText As String Dim sOut As String, lNbLargeurChar As Long
For i = 1 To Len(sText) Step lNbLargeurChar - 1 If i + lNbLargeurChar - 1 >= Len(sText) Then sOut = sOut & Mid$(sText, i, lNbLargeurChar - 1) Else sOut = sOut & Mid$(sText, i, lNbLargeurChar - 1) & "-" & vbCrLf End If Next
Text1.Text = sOut
Text1.SelStart = lPos
sOut = "": sText = "" End Sub
ng
As-tu correctement configuré ton textbox ?
Ca marche très bien chez moi!
Sinon quant est-il de la solution de francois ?
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Cédric a écrit :
Oui merci, avec ca, la première ligne est parfaite, mais ça marche plus à partir de la deuxième: ca se remet à écrire à l'envers, de plus le tiret est présent un carctère sur 2. Il doit y avoir un problème dans le compteur
Je vous met le code:
Option Explicit
Private Sub Text1_Change()
Dim i As Integer, tblLignes() As String, sText As String Dim sOut As String, lNbLargeurChar As Long
For i = 1 To Len(sText) Step lNbLargeurChar - 1 If i + lNbLargeurChar - 1 >= Len(sText) Then sOut = sOut & Mid$(sText, i, lNbLargeurChar - 1) Else sOut = sOut & Mid$(sText, i, lNbLargeurChar - 1) & "-" & vbCrLf End If Next
Text1.Text = sOut
Text1.SelStart = lPos
sOut = "": sText = "" End Sub
As-tu correctement configuré ton textbox ?
Ca marche très bien chez moi!
Sinon quant est-il de la solution de francois ?
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Cédric <cedrik702@_inv_alid_hotmail.com> a écrit :
Oui merci, avec ca, la première ligne est parfaite, mais ça marche
plus à partir de la deuxième: ca se remet à écrire à l'envers, de
plus le tiret est présent un carctère sur 2. Il doit y avoir un
problème dans le compteur
Je vous met le code:
Option Explicit
Private Sub Text1_Change()
Dim i As Integer, tblLignes() As String, sText As String
Dim sOut As String, lNbLargeurChar As Long
For i = 1 To Len(sText) Step lNbLargeurChar - 1
If i + lNbLargeurChar - 1 >= Len(sText) Then
sOut = sOut & Mid$(sText, i, lNbLargeurChar - 1)
Else
sOut = sOut & Mid$(sText, i, lNbLargeurChar - 1) & "-" &
vbCrLf End If
Next
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Cédric a écrit :
Oui merci, avec ca, la première ligne est parfaite, mais ça marche plus à partir de la deuxième: ca se remet à écrire à l'envers, de plus le tiret est présent un carctère sur 2. Il doit y avoir un problème dans le compteur
Je vous met le code:
Option Explicit
Private Sub Text1_Change()
Dim i As Integer, tblLignes() As String, sText As String Dim sOut As String, lNbLargeurChar As Long
For i = 1 To Len(sText) Step lNbLargeurChar - 1 If i + lNbLargeurChar - 1 >= Len(sText) Then sOut = sOut & Mid$(sText, i, lNbLargeurChar - 1) Else sOut = sOut & Mid$(sText, i, lNbLargeurChar - 1) & "-" & vbCrLf End If Next
Text1.Text = sOut
Text1.SelStart = lPos
sOut = "": sText = "" End Sub
Cédric
> As-tu correctement configuré ton textbox ?
Jusqu'à présent j'avais essayé avec une richtextbox. Avec une textbox, il y a moins de problème, cela marche et sur plusieurs lignes, mais quand je tape, du texte se rajoute progressivement à droite de mon curseur. Quant à la confiuration, je pense que c'est bon, cad configuration de défaut + multine=true + police a empatement fixe
Ca marche très bien chez moi!
snif ;-)
Sinon quant est-il de la solution de francois ?
J'ai fait exactement comment écrit, il n'y a aucun probleme à la compilation, mais ca ne marche pas. Je ne comprend pas du tout le code de Francois, peut être qu'il faut indiquer quelque part l'endroit où je veux couper.
Pourriez vous me commenter vos sources? je pourrai peut etre plus réflechir avant de vous reposer des questions
> As-tu correctement configuré ton textbox ?
Jusqu'à présent j'avais essayé avec une richtextbox. Avec une textbox, il y
a moins de problème, cela marche et sur plusieurs lignes, mais quand je
tape, du texte se rajoute progressivement à droite de mon curseur. Quant à
la confiuration, je pense que c'est bon, cad configuration de défaut +
multine=true + police a empatement fixe
Ca marche très bien chez moi!
snif ;-)
Sinon quant est-il de la solution de francois ?
J'ai fait exactement comment écrit, il n'y a aucun probleme à la
compilation, mais ca ne marche pas. Je ne comprend pas du tout le code de
Francois, peut être qu'il faut indiquer quelque part l'endroit où je veux
couper.
Pourriez vous me commenter vos sources? je pourrai peut etre plus réflechir
avant de vous reposer des questions
Jusqu'à présent j'avais essayé avec une richtextbox. Avec une textbox, il y a moins de problème, cela marche et sur plusieurs lignes, mais quand je tape, du texte se rajoute progressivement à droite de mon curseur. Quant à la confiuration, je pense que c'est bon, cad configuration de défaut + multine=true + police a empatement fixe
Ca marche très bien chez moi!
snif ;-)
Sinon quant est-il de la solution de francois ?
J'ai fait exactement comment écrit, il n'y a aucun probleme à la compilation, mais ca ne marche pas. Je ne comprend pas du tout le code de Francois, peut être qu'il faut indiquer quelque part l'endroit où je veux couper.
Pourriez vous me commenter vos sources? je pourrai peut etre plus réflechir avant de vous reposer des questions
François Picalausa
Hello,
Attention tout d'abord que cette source ne fonctione que sous NT4+/95+ Attention aussi que j'ai fait une erreur dans la source: le nom du contrôle n'est pas richtext1 mais bien RichTextBox1 (Vu que mes Options Explicit ont sauté, il n'y a pas d'erreur générée)
Donc, commençons par le début: Option Explicit
'WM_USER: message privés pour l'utilisation avec des classes de fenêtres privées. Private Const WM_USER As Long = &H400 'Généralement WM_USER est utilisé sous la forme WM_USER + X où X est une valeur entière 'Cette déclaration a été récupérée dans Richedit.h Private Const EM_SETWORDBREAKPROCEX As Long = WM_USER + 81
'Un SendMessage classique, si ce n'est que le dernier 'paramètre a été redéfinit comme byval as long pour passer une adresse de procédure Private Declare Function SendMessage _ Lib "user32" _ Alias "SendMessageA" _ ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ ByVal lParam As Long _ ) _ As Long
Private Sub Form_Load() 'On envoie un message EM_SETWORDBREAKPROCEX au richtextbox 'Avec l'adresse de la procédure de découpage, procédure qui doit absolument se trouver 'dans un module standard, à cause de l'opérateur AddressOf SendMessage RichTextBox1.hwnd, _ EM_SETWORDBREAKPROCEX, _ 0, _ AddressOf EditWordBreakProcEx End Sub
'Dans un module standard: Option Explicit
Function EditWordBreakProcEx( _ ByVal pchText As Long, _ ByVal cchText As Long, _ ByVal bCharSet As Byte, _ ByVal code As Long _ ) _ As Long
'Attention: on est sencé tenir compte de la valeur de code: 'WB_CLASSIFY : Returns the character class and word-break ' flags of the character at the specified position. 'WB_ISDELIMITER : Returns TRUE if the character at ' the specified position is a delimiter ' or FALSE if the character is not. 'All other values : Returns the character index of the word break.
'=> ici, on fait comme si on était dans le cas All other values : on spécifie ' de couper à la position actuelle (0)
EditWordBreakProcEx = 0 'coupez!
End Function
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Cédric" a écrit dans le message de news:40779a3c$0$17499$
Sinon quant est-il de la solution de francois ?
J'ai fait exactement comment écrit, il n'y a aucun probleme à la compilation, mais ca ne marche pas. Je ne comprend pas du tout le code de Francois, peut être qu'il faut indiquer quelque part l'endroit où je veux couper.
Pourriez vous me commenter vos sources? je pourrai peut etre plus réflechir avant de vous reposer des questions
Hello,
Attention tout d'abord que cette source ne fonctione que sous NT4+/95+
Attention aussi que j'ai fait une erreur dans la source:
le nom du contrôle n'est pas richtext1 mais bien RichTextBox1
(Vu que mes Options Explicit ont sauté, il n'y a pas d'erreur générée)
Donc, commençons par le début:
Option Explicit
'WM_USER: message privés pour l'utilisation avec des classes de fenêtres
privées.
Private Const WM_USER As Long = &H400
'Généralement WM_USER est utilisé sous la forme WM_USER + X où X est une
valeur entière
'Cette déclaration a été récupérée dans Richedit.h
Private Const EM_SETWORDBREAKPROCEX As Long = WM_USER + 81
'Un SendMessage classique, si ce n'est que le dernier
'paramètre a été redéfinit comme byval as long pour passer une adresse de
procédure
Private Declare Function SendMessage _
Lib "user32" _
Alias "SendMessageA" _
( _
ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long _
) _
As Long
Private Sub Form_Load()
'On envoie un message EM_SETWORDBREAKPROCEX au richtextbox
'Avec l'adresse de la procédure de découpage, procédure qui doit
absolument se trouver
'dans un module standard, à cause de l'opérateur AddressOf
SendMessage RichTextBox1.hwnd, _
EM_SETWORDBREAKPROCEX, _
0, _
AddressOf EditWordBreakProcEx
End Sub
'Dans un module standard:
Option Explicit
Function EditWordBreakProcEx( _
ByVal pchText As Long, _
ByVal cchText As Long, _
ByVal bCharSet As Byte, _
ByVal code As Long _
) _
As Long
'Attention: on est sencé tenir compte de la valeur de code:
'WB_CLASSIFY : Returns the character class and word-break
' flags of the character at the specified
position.
'WB_ISDELIMITER : Returns TRUE if the character at
' the specified position is a
delimiter
' or FALSE if the character is not.
'All other values : Returns the character index of the word break.
'=> ici, on fait comme si on était dans le cas All other values : on
spécifie
' de couper à la position actuelle (0)
EditWordBreakProcEx = 0 'coupez!
End Function
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"Cédric" <cedrik702@_inv_alid_hotmail.com> a écrit dans le message de
news:40779a3c$0$17499$626a14ce@news.free.fr
Sinon quant est-il de la solution de francois ?
J'ai fait exactement comment écrit, il n'y a aucun probleme à la
compilation, mais ca ne marche pas. Je ne comprend pas du tout le
code de Francois, peut être qu'il faut indiquer quelque part
l'endroit où je veux couper.
Pourriez vous me commenter vos sources? je pourrai peut etre plus
réflechir avant de vous reposer des questions
Attention tout d'abord que cette source ne fonctione que sous NT4+/95+ Attention aussi que j'ai fait une erreur dans la source: le nom du contrôle n'est pas richtext1 mais bien RichTextBox1 (Vu que mes Options Explicit ont sauté, il n'y a pas d'erreur générée)
Donc, commençons par le début: Option Explicit
'WM_USER: message privés pour l'utilisation avec des classes de fenêtres privées. Private Const WM_USER As Long = &H400 'Généralement WM_USER est utilisé sous la forme WM_USER + X où X est une valeur entière 'Cette déclaration a été récupérée dans Richedit.h Private Const EM_SETWORDBREAKPROCEX As Long = WM_USER + 81
'Un SendMessage classique, si ce n'est que le dernier 'paramètre a été redéfinit comme byval as long pour passer une adresse de procédure Private Declare Function SendMessage _ Lib "user32" _ Alias "SendMessageA" _ ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ ByVal lParam As Long _ ) _ As Long
Private Sub Form_Load() 'On envoie un message EM_SETWORDBREAKPROCEX au richtextbox 'Avec l'adresse de la procédure de découpage, procédure qui doit absolument se trouver 'dans un module standard, à cause de l'opérateur AddressOf SendMessage RichTextBox1.hwnd, _ EM_SETWORDBREAKPROCEX, _ 0, _ AddressOf EditWordBreakProcEx End Sub
'Dans un module standard: Option Explicit
Function EditWordBreakProcEx( _ ByVal pchText As Long, _ ByVal cchText As Long, _ ByVal bCharSet As Byte, _ ByVal code As Long _ ) _ As Long
'Attention: on est sencé tenir compte de la valeur de code: 'WB_CLASSIFY : Returns the character class and word-break ' flags of the character at the specified position. 'WB_ISDELIMITER : Returns TRUE if the character at ' the specified position is a delimiter ' or FALSE if the character is not. 'All other values : Returns the character index of the word break.
'=> ici, on fait comme si on était dans le cas All other values : on spécifie ' de couper à la position actuelle (0)
EditWordBreakProcEx = 0 'coupez!
End Function
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Cédric" a écrit dans le message de news:40779a3c$0$17499$
Sinon quant est-il de la solution de francois ?
J'ai fait exactement comment écrit, il n'y a aucun probleme à la compilation, mais ca ne marche pas. Je ne comprend pas du tout le code de Francois, peut être qu'il faut indiquer quelque part l'endroit où je veux couper.
Pourriez vous me commenter vos sources? je pourrai peut etre plus réflechir avant de vous reposer des questions
Cédric
Merci 1000 fois, je vais travailler tout ca
Attention tout d'abord que cette source ne fonctione que sous NT4+/95+
Je suis sous XP, y a t-il quelque chose à changer?
Merci 1000 fois, je vais travailler tout ca
Attention tout d'abord que cette source ne fonctione que sous NT4+/95+
Je suis sous XP, y a t-il quelque chose à changer?