다음을 통해 공유


리치 에디트 텍스트 작업을 사용하는 방법

애플리케이션은 다양한 편집 컨트롤에서 텍스트를 검색하거나 찾기 위해 메시지를 보낼 수 있습니다. 선택한 텍스트 또는 지정된 텍스트 범위를 검색할 수 있습니다.

서식 있는 편집 컨트롤에서 선택한 텍스트를 얻으려면 EM_GETSELTEXT 메시지를 사용합니다. 텍스트가 지정된 문자 배열에 복사됩니다. 선택한 텍스트와 종료 null 문자를 저장할 수 있을 만큼 배열이 충분히 큰지 확인해야 합니다.

지정된 텍스트 범위를 검색하려면 EM_GETTEXTRANGE 메시지를 사용합니다. 이 메시지와 함께 사용되는 TEXTRANGE 구조체는 검색할 텍스트 범위를 지정하고 텍스트를 받는 문자 배열을 가리킵니다. 여기서도 애플리케이션은 배열이 지정된 텍스트와 종료 null 문자에 대해 충분히 큰지 확인해야 합니다.

EM_FINDTEXT 또는 EM_FINDTEXTEX 메시지 또는 유니코드 등가물인 EM_FINDTEXTWEM_FINDTEXTEXW사용하여 서식 있는 편집 컨트롤에서 문자열을 검색할 수 있습니다. 무인 버전과 함께 사용되는 FINDTEXT 구조체는 검색할 텍스트 범위와 검색할 문자열을 지정합니다. 확장 버전은 동일한 정보를 지정하고 찾은 텍스트의 문자 범위의 시작점과 끝점을 수신하는 FINDTEXTEX 구조를 사용합니다. 검색이 대/소문자를 구분하는지 여부와 같은 옵션을 지정할 수도 있습니다.

알아야 할 사항

기술

필수 구성 요소

  • C/C++
  • Windows 사용자 인터페이스 프로그래밍

지시

리치 텍스트 편집 작업 사용하기

다음 예제 함수는 유니코드를 지원하는 서식 있는 편집 컨트롤에서 선택한 텍스트 내에서 지정된 텍스트를 찾습니다. 대상이 발견되면 새 선택 영역이 됩니다.

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

발언

Microsoft Rich Edit 3.0에서는 사용자가 핫 키를 사용하여 16진수와 유니코드 간에 변환할 수 있는 IME(HexToUnicode Input Method Editor) 함수도 지원합니다. 자세한 내용은 HexToUnicode IME참조하세요.

서식 있는 편집 컨트롤 사용하기

Windows 공용 컨트롤 데모(CppWindowsCommonControls)