Come usare operazioni rich edit text

Un'applicazione può inviare messaggi per recuperare o trovare testo in un controllo rich edit. È possibile recuperare il testo selezionato o un intervallo di testo specificato.

Per ottenere il testo selezionato in un controllo rich edit, usare il messaggio EM_GETedizione Standard LTEXT. Il testo viene copiato nella matrice di caratteri specificata. È necessario assicurarsi che la matrice sia sufficientemente grande da contenere il testo selezionato e un carattere Null di terminazione.

Per recuperare un intervallo di testo specificato, usare il messaggio EM_GETTEXTRANGE. La struttura TEXTRANGE utilizzata con questo messaggio specifica l'intervallo di testo da recuperare e punta a una matrice di caratteri che riceve il testo. Anche in questo caso, l'applicazione deve assicurarsi che la matrice sia sufficientemente grande per il testo specificato e un carattere Null di terminazione.

È possibile cercare una stringa in un controllo di modifica rtf usando i messaggi EM_FINDTEXT o EM_FINDTEXTEX oppure i relativi equivalenti Unicode, EM_FINDTEXTW e EM_FINDTEXTEXW. La struttura FINDTEXT utilizzata con le versioni non automatiche specifica l'intervallo di testo da cercare e la stringa da cercare. Le versioni estese usano una struttura FINDTEXTEX , che specifica le stesse informazioni e riceve anche i punti iniziale e finale dell'intervallo di caratteri del testo trovato. È anche possibile specificare tali opzioni, ad esempio se la ricerca fa distinzione tra maiuscole e minuscole.

Informazioni importanti

Tecnologie

Prerequisiti

  • C/C++
  • Programmazione dell'interfaccia utente di Windows

Istruzioni

Usare un'operazione rich edit text

La funzione di esempio seguente trova il testo specificato all'interno del testo selezionato in un controllo rich edit che supporta Unicode. Se la destinazione viene trovata, diventa la nuova selezione.

BOOL FindTextInSelection(HWND hRich, WCHAR* target)
{
    CHARRANGE selectionRange;
    
    SendMessage(hRich, EM_EXGETSEL, 0, (LPARAM)&selectionRange);
    
    FINDTEXTEX ftex;
    
    ftex.lpstrText  = target;
    ftex.chrg.cpMin = selectionRange.cpMin;
    ftex.chrg.cpMax = selectionRange.cpMax;
    
    LRESULT lr = SendMessage(hRich, EM_FINDTEXTEXW, (WPARAM)FR_DOWN, (LPARAM) &ftex);
    
    if (lr >= 0)
    {
        LRESULT lr1 = SendMessage(hRich, EM_EXSETSEL, 0, (LPARAM)&ftex.chrgText);
        
        SendMessage(hRich, EM_HIDESELECTION, (LPARAM)FALSE, 0);
        
        return TRUE;
    }
    
    return FALSE;
    
}

Osservazioni:

Microsoft Rich Edit 3.0 supporta anche la funzione IME (Input Method Editor) HexToUnicode, che consente a un utente di eseguire la conversione tra esadecimale e Unicode usando i tasti di scelta rapida. Per altre informazioni, vedere HexToUnicode IME.

Uso di controlli Rich Edit

Demo dei controlli comuni di Windows (CppWindowsCommonControls)