- Ottenere una linea di una casella di testo - |
|||
COSA SERVE PER QUESTO TUTORIAL | |||
Download | Chiedi sul FORUM | Glossario | Microsoft Visual Basic 6 - Conoscenze basiche di VB | ||
SendMessage con parametri: EM_GETLINE | |||
OTTENERE IL TESTO DI UNA RIGA DI UNA CASELLA DI TESTO TRAMITE LE API La funzione SendMessage di user32.dll e il messaggio EM_GETLINE Come accennato nel precedente articolo (sul cui codice questo tutorial si basa) alcuni messaggi richiedono che ulteriori parametri a SendMessage, uno di questi è EM_GETLINE, messaggio di richiesta del testo di una riga specificata di una casella di testo. Per prima cosa rispetto al vecchio progetto nel modulo va sostituita la riga che dichiarava la costante con quella che segue (sempre ottenuta tramite l'API Viewer di Visual Studio). Public Const EM_GETLINECOUNT = &HBA deve diventare: Public Const EM_GETLINE = &HC4 Mentre nel form, la routine Agisci_Click deve diventare: Private Sub Agisci_Click() Dim strRiga As String Dim lngLunghezzaRiga As Long strRiga = String(255, Chr(1)) lngLunghezzaRiga = SendMessage(Prova.hwnd, EM_GETLINE, 2, ByVal strRiga) NumRighe.Text = Left(strRiga, lngLunghezzaRiga) End Sub Per prima cosa è stata dichiarata una stringa di testo ed è stata
riempita con una sequenza di 255 caratteri uguali una parte dei
quali sarà rimpiazzata dal testo della riga che verrà richiesta (gli
altri andranno scartati). Fatto questo viene richiamata la funzione
SendMessage, passandogli sempre l'handle della casella di testo
Prova, l'identificativo del messaggio EM_GETLINE e in seguito il
numero della linea che si desidera ottenere (dove 0 indica la prima, 1
la seconda e così via) e infine un riferimento alla stringa che dovrà
contenere il risultato. SendMessage in questo caso restituirà il
numero di caratteri copiati in strRiga: per questo nel mostrare
la stringa di risultato nella casella NumRighe viene utilizzata
la funzione Left. |
|||
<< INDIETRO | by VeNoM00 |