Zengin Metin Düzenleme İşlemlerini Kullanma

Bir uygulama, zengin düzenleme denetimindeki metinleri almak veya bulmak için iletiler gönderebilir. Seçili metni veya belirtilen metin aralığını alabilirsiniz.

Seçili metni zengin düzenleme denetiminde almak için EM_GETSELTEXT iletisini kullanın. Metin belirtilen karakter dizisine kopyalanır. Dizinin seçili metni ve sonlandırıcı null karakteri tutacak kadar büyük olduğundan emin olmanız gerekir.

Belirtilen metin aralığını almak için EM_GETTEXTRANGE iletisini kullanın. Bu iletiyle birlikte kullanılan TEXTRANGE yapısı, alınacak metin aralığını belirtir ve metni alan bir karakter dizisine işaret eder. Burada da uygulamanın dizinin belirtilen metin için yeterince büyük olduğundan ve sonlandırıcı bir null karakter olduğundan emin olması gerekir.

EM_FINDTEXT veya EM_FINDTEXTEX iletilerini ya da bunların Unicode eşdeğerlerini EM_FINDTEXTW ve EM_FINDTEXTEXWkullanarak zengin düzenleme denetimindeki bir dizeyi arayabilirsiniz. Var olmayan sürümlerle kullanılan FINDTEXT yapısı, aranacak metin aralığını ve aranacak dizeyi belirtir. Genişletilmiş sürümler, aynı bilgileri belirten ve bulunan metnin karakter aralığının başlangıç ve bitiş noktalarını da alan FINDTEXTEX yapısı kullanır. Arama işleminin büyük/küçük harfe duyarlı olup olmadığı gibi seçenekleri de belirtebilirsiniz.

Bilmeniz gerekenler

Teknolojileri

Önkoşullar

  • C/C++
  • Windows Kullanıcı Arabirimi Programlama

Talimatlar

Zengin Metin Düzenleme İşlemi Kullanma

Aşağıdaki örnek işlev, Unicode destekleyen zengin bir düzenleme denetiminde seçili metin içinde belirtilen metni bulur. Hedef bulunursa yeni seçim olur.

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

Açıklamalar

Microsoft Rich Edit 3.0, bir kullanıcının kısayol tuşlarını kullanarak onaltılık ve Unicode arasında dönüştürme yapmasına olanak tanıyan HexToUnicode Giriş Yöntemi Düzenleyicisi (IME) işlevini de destekler. Daha fazla bilgi için bkz. HexToUnicode IME .

Zengin Düzenleme Denetimlerini Kullanma

Windows ortak denetimler tanıtımı (CppWindowsCommonControls)