서식 있는 편집 텍스트 작업을 사용하는 방법
애플리케이션은 서식 있는 편집 컨트롤에서 텍스트를 검색하거나 찾기 위해 메시지를 보낼 수 있습니다. 선택한 텍스트 또는 지정된 텍스트 범위를 검색할 수 있습니다.
서식 있는 편집 컨트롤에서 선택한 텍스트를 받으려면 EM_GETSELTEXT 메시지를 사용합니다. 텍스트가 지정된 문자 배열에 복사됩니다. 배열이 선택한 텍스트와 종료 null 문자를 저장할 수 있을 만큼 충분히 큰지 확인해야 합니다.
지정된 텍스트 범위를 검색하려면 EM_GETTEXTRANGE 메시지를 사용합니다. 이 메시지와 함께 사용되는 TEXTRANGE 구조체는 검색할 텍스트 범위를 지정하고 텍스트를 수신하는 문자 배열을 가리킵니다. 여기서도 애플리케이션은 배열이 지정된 텍스트와 종료 null 문자에 대해 충분히 큰지 확인해야 합니다.
EM_FINDTEXT 또는 EM_FINDTEXTEX 메시지 또는 유니코드와 메시지인 EM_FINDTEXTW 및 EM_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를 참조하세요.
관련 항목