Comment connaitre la première ligne visible dans une richtextbox
pazgal
Messages postés12Date d'inscriptionsamedi 30 avril 2005StatutMembreDernière intervention11 mai 2006
-
28 mai 2005 à 21:26
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
30 mai 2005 à 09:42
Bonsoir à tous,
Je cherche à faire un éditeur PHP. J'aimerais bien numéroter les lignes
de ma richtextbox mais mon problème est que je ne sais pas quelle est
la première ligne visible (lorsque l'on scroll)
Merci d'avance pour votre précieuse aide.
Pazgal
A voir également:
Comment connaitre la première ligne visible dans une richtextbox
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 29 mai 2005 à 02:08
Salut
J'ai été confronté à cette question récemment pour retrouver le texte sous la souris.
Je te l'ai aménagé pour répondre à ta question :
-1- Supposons que le RichTextBox s'appelle rtfText
-2- Dans la partie déclaration de ton code :
Option Explicit
Private Type PointApi
x As Long
y As Long
End Type
Private Const EM_CHARFROMPOS As Long = &HD7
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
ByVal hWnd As Long, _
ByVal msg As Long, _
ByVal wp As Long, _
lp As Any) As Long
-3- Dans le code d'un bouton (par exemple) :
Private Sub Command1_Click()
' On va chercher le texte qui se trouve en haut à gauche d'un RTB
Dim Caract As PointApi, PosCar As Long
' Toutes ces coordonnées qui suivent sont en pixel, pas en twips
On Error Resume Next
' Coordonnées du caractère du coin haut gauche (à la louche)
Caract.x = 2 ' pixel
Caract.y = 2 ' pixel
' Recherche le caractère qui correspond
PosCar = SendMessage(rtfText.hWnd, EM_CHARFROMPOS, ByVal 0, ByVal Caract)
If PosCar = 0 Then Exit Sub
Debug.Print "10 caractères trouvés >" & Mid(rtfText.Text, PosCar + 1, 10) & "<"
End Sub
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
pazgal
Messages postés12Date d'inscriptionsamedi 30 avril 2005StatutMembreDernière intervention11 mai 2006 29 mai 2005 à 11:15
J'ai recopié le code que tu m'as fourni mais il fait une erreur sur
l'appel à la fonction SendMessage, plus précisement il me surligne :
"ByVal Caract" -> "Type incompatible"
N'y a t'il pas plus simple pour n'obtenir que le numéro de la première ligne visible ?