Cara Menggunakan Operasi Edit Teks Kaya

Aplikasi dapat mengirim pesan untuk mengambil atau menemukan teks dalam kontrol edit yang kaya. Anda dapat mengambil teks yang dipilih atau rentang teks tertentu.

Untuk mendapatkan teks yang dipilih dalam kontrol edit kaya, gunakan pesan EM_GETSELTEXT. Teks disalin ke array karakter yang ditentukan. Anda harus memastikan bahwa array cukup besar untuk menahan teks yang dipilih ditambah karakter null yang mengakhiri.

Untuk mengambil rentang teks tertentu, gunakan pesan EM_GETTEXTRANGE. Struktur TEXTRANGE yang digunakan dengan pesan ini menentukan rentang teks untuk mengambil dan menunjuk ke array karakter yang menerima teks. Di sini lagi, aplikasi harus memastikan bahwa array cukup besar untuk teks yang ditentukan ditambah karakter null yang mengakhiri.

Anda dapat mencari string dalam kontrol edit kaya dengan menggunakan pesan EM_FINDTEXT atau EM_FINDTEXTEX, atau yang setara dengan Unicode, EM_FINDTEXTW, dan EM_FINDTEXTEXW. Struktur FINDTEXT yang digunakan dengan versi yang tidak ada menentukan rentang teks untuk dicari dan string yang akan dicari. Versi yang diperluas menggunakan struktur FINDTEXTEX , yang menentukan informasi yang sama dan juga menerima titik awal dan akhir rentang karakter teks yang ditemukan. Anda juga dapat menentukan opsi seperti apakah pencarian peka huruf besar/kecil.

Apa yang perlu Anda ketahui

Teknologi

Prasyarat

  • C/C++
  • Pemrograman Antarmuka Pengguna Windows

Petunjuk

Menggunakan Operasi Edit Teks Kaya

Contoh fungsi berikut menemukan teks yang ditentukan dalam teks yang dipilih dalam kontrol edit kaya yang mendukung Unicode. Jika target ditemukan, target akan menjadi pilihan baru.

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;
    
}

Keterangan

Microsoft Rich Edit 3.0 juga mendukung fungsi HexToUnicode Input Method Editor (IME), yang memungkinkan pengguna untuk mengonversi antara heksadesimal dan Unicode dengan menggunakan tombol panas. Untuk informasi selengkapnya, lihat IME HexToUnicode.

Menggunakan Kontrol Edit Kaya

Demo kontrol umum Windows (CppWindowsCommonControls)