1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
- Copiez tout d'abord ces déclarations au début du module de la form :
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, _
ByVal Length As Long)
Private Const EM_GETLINECOUNT = &HBA
Private Const EM_LINELENGTH = &HC1
Private Const EM_LINEINDEX = &HBB
Private Const EM_GETLINE = &HC4
- La procédure ci-dessous affiche une par une les lignes du textbox dont le handle est passé en paramètre :
Private Sub AfficheLignes(lngHandleTextBox As Long)
Dim lngNbLignes As Long, i As Long
Dim lngIndexCar As Long, intLongueurLigne As Integer
Dim strLigne As String
'nombre de lignes
lngNbLignes = SendMessage(lngHandleTextBox, EM_GETLINECOUNT, 0, 0)
For i = 1 To lngNbLignes
'index du premier caractère de la ligne
lngIndexCar = SendMessage(lngHandleTextBox, EM_LINEINDEX, i - 1, 0)
'longueur de la ligne
intLongueurLigne = SendMessage(lngHandleTextBox, EM_LINELENGTH, lngIndexCar, 0)
'récupère la ligne dans la chaîne strLigne
strLigne = Space(intLongueurLigne)
CopyMemory ByVal strLigne, intLongueurLigne, Len(intLongueurLigne)
SendMessage lngHandleTextBox, EM_GETLINE, i - 1, ByVal strLigne
MsgBox strLigne
Next
End Sub |
Partager