Aide Explication SendMessage

Signaler
Messages postés
232
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
5 octobre 2012
-
Messages postés
232
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
5 octobre 2012
-
Bonjour,
J'ai trouvé ce code permettant de donner le nombre de ligne d'un textbox multiline

Public Function GetLine(TBox As TextBox, LineNumber) As String
SendMessage TBox.hwnd, EM_FMTLINES, 1, 0#
GetLine = Replace$(TBox.Text, vbCr & vbCrLf, vbCrLf)
SendMessage TBox.hwnd, EM_FMTLINES, 0, 0#
GetLine = Split(GetLine, vbCrLf)(LineNumber + 1)
End Function

Mais quelqu'un peut-il m'expliquer à quoi sert SendMessage ici ?
Merci bien

4 réponses

Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
10
Bonjour,

Notre vieil ami Bill te l'explique ici:

http://msdn.microsoft.com/en-us/library/ms644950(VS.85).aspx

Calade
Messages postés
232
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
5 octobre 2012

merci mais je veux pas paraitre nul mais là si; disons que j'y comprend pour le cas
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
10
Bonjour,

Tout simplement, tu envoies un message via la fonction SendMessage à ta textBox en la priant bien gentiment de te renvoyer le nombre de lignes qu'elle contient.

En décomposant l'API:

SendMessage demande à Windows d'envoyer un message
TextBox.hwnd (le handle de ta textbox) est le destinataire.
EM_FMTLINES est le message demandant le nb de lignes

en retour tu reçois le nb de lignes.

J'espère avoir bien répondu à ta question, les API sont irremplaçables mais sont effectivement souvent assez nébuleuses et la doc Microsoft plutôt axée sur le C++ et non sur VB.
Calade
Messages postés
232
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
5 octobre 2012

Merci, magique tout ça