다음을 통해 공유


서식 있는 편집 텍스트 작업을 사용하는 방법

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

서식 있는 편집 컨트롤에서 선택한 텍스트를 받으려면 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진수와 유니코드 간에 변환할 수 있는 HexToUnicode IME(입력 메서드 편집기) 함수도 지원합니다. 자세한 내용은 HexToUnicode IME를 참조하세요.

서식 있는 편집 컨트롤 사용

Windows 공용 컨트롤 데모(CppWindowsCommonControls)