TextEdit 컨트롤 패턴
속성 및 메서드에 대한 정보를 포함하여 ITextEditProvider를 구현하기 위한 지침 및 규칙을 소개합니다. TextEdit 컨트롤 패턴은 자동 수정을 수행하거나 입력 컴퍼지션을 사용하도록 설정하는 컨트롤과 같이 텍스트를 수정하는 컨트롤에 프로그래밍 방식으로 액세스하는 데 사용됩니다.
참고
이 항목의 구현 정보는 TSF(Text Services Framework)에서 제공하는 API를 참조합니다. TSF 및 API 참조에 대한 자세한 내용은 Text Services Framework를 참조하세요.
ITextEditProvider에 필요한 멤버
이러한 속성 및 메서드는 ITextEditProvider 인터페이스를 구현하는 데 필요합니다.
필요한 멤버 | 멤버 형식 | 참고 |
---|---|---|
GetActiveComposition | 메서드 | 현재 변환의 범위를 반환합니다(변환이 없으면 없음). 활성 컴퍼지션을 반환합니다(TSF에서는 GUID_PROP_COMPOSING 표시된 범위임). 예를 들어 Microsoft IME(일본어 입력 방법 편집기)의 경우 전체 밑줄이 그어져 있는 텍스트입니다. |
GetConversionTarget | 메서드 | 현재 변환 대상 범위를 반환합니다(변환이 없으면 없음). TSF에서 TF_DISPLAYATTRIBUTE 구조체에서 TF_ATTR_TARGET_NOTCONVERTED 또는 TF_ATTR_TARGET_CONVERTED 표시된 문자 범위입니다. |
TextEditTextChanged 및 ConversionTargetChanged 이벤트는 TextEdit 패턴을 지원하는 Microsoft UI 자동화 요소에서 발생해야 합니다.
TextEditTextChanged
- UiaRaiseTextEditTextChangedEvent 함수를 사용하여 TextEditTextChanged 이벤트를 발생합니다.
- 다음 표에서는 이벤트를 발생시켜야 하는 경우와 사용할 UiaRaiseTextEditTextChangedEvent 매개 변수를 나열합니다.
TextEditChangeType | 이벤트 페이로드 | 참고 |
---|---|---|
자동 고침 | 수정된 새 문자열 | 컨트롤에서 자동 수정을 할 때 발생합니다. 또는 TSF를 통해 교체할 때마다 범위에 GUID_PROP_TKB_ALTERNATES 값이 TKB_ALTERNATES_AUTOCORRECTION_APPLIED. |
구성 | 업데이트된 문자열 | 페이로드는 변경된 문자만 포함해야 합니다(전체 컴퍼지션 문자열을 보내지 않음). 컴퍼지션 교체가 이루어질 때마다 발생합니다. TSF에서 컴퍼지션 대체는 GUID_PROP_COMPOSING 플래그가 설정된 대체로 정의됩니다. TSF를 구현하는 편집 컨트롤은 OnEndEdit 알림을 통해 이러한 변경 내용을 모니터링할 수 있습니다. |
CompositionFinalized | 완료된 컴퍼지션 문자열(참고 참조) | TSF에서 마무리되는 변환 문자열은 컴퍼지션에서 제거되는 GUID_PROP_COMPOSING 플래그에 의해 정의됩니다. TSF를 구현하는 편집 컨트롤은 EndComposition 에서 종료된 문자열을 결정하고 OnEndEdit 가 호출될 때 이벤트를 발생시켜야 합니다. 컴퍼지션이 취소되거나 삭제된 경우 완료된 컴퍼지션 문자열이 비어 있을 수 있습니다. |
ConversionTargetChanged
- ConversionTargetChanged 는 변환 대상이 한 대상에서 다른 대상으로 변경되면 발생합니다.
- UiaRaiseAutomationEvent 함수를 사용하여 ConversionTargetChanged 이벤트를 발생합니다(UIA_TextEdit_ConversionTargetChangedEventId 이벤트 식별자를 전달).
- 대상의 콘텐츠가 변경되면 ConversionTargetChanged를 발생시키지 않아야 합니다. 컴퍼지션 변경과 동시에 대상 변경이 발생하는 경우 컴퍼지션 이벤트가 이미 발생한 후에 대상 변경 이벤트가 발생해야 합니다.
- TSF에서 변환 대상은 TF_DISPLAYATTRIBUTE 구조에서 설정되는 TF_ATTR_TARGET_CONVERTED 값으로 정의됩니다. OnEndEdit를 사용하여 변경 내용을 모니터링할 수 있습니다.