UILess 모드 개요

UILessMode를 만드는 방법

UI가 없는 스레드 만들기: 애플리케이션은 ITF_AE_UIELEMENTENABLEDONLY ITfThreadMgrEx::ActivateEx 로 UI를 덜 스레드로 만들 수 있습니다. ThreadMgr이 이 플래그를 사용하여 활성화되면 해당 UI 요소를 제어할 수 있는 TIP만 스레드에서 활성화됩니다. 애플리케이션은 ITfUIElementSink 인터페이스를 구현하고 인터페이스를 스레드 관리자에 조언해야 합니다. TIP에 UI가 표시되면 ITfUIElementSink::BeginUIElement 가 호출됩니다. 애플리케이션이 그리기를 원하지 않을 때 TIP이 TIP의 원래 UI를 표시할 수 있도록 애플리케이션은 pbShow 매개 변수에서 TRUE 를 반환할 수 있습니다. 애플리케이션에서 TIP의 UI를 허용하지 않는 경우 pbShow에서 FALSE 를 반환할 수 있습니다(아래 다이어그램 참조). 애플리케이션은 pElement 매개 변수에서 일부 정보를 가져오면 UI를 단독으로 그릴 수 있습니다. 후보 목록, 언어 모음 항목 또는 TIP의 사용자 지정 UI일 수 있습니다. 애플리케이션은 QIing ITfUIElement 인터페이스를 통해 UI 종류를 알 수 있습니다. UI가 변경되면 ITfUIElementSink::UpdateUIElement 가 호출됩니다. 애플리케이션은 pElement-GetGUID>()의 GUID를 비교하여 요소가 현재 애플리케이션에 의해 그려지는지 알 수 있습니다.

UI가 없는 인식 팁 만들기: TIP은 게임 애플리케이션 또는 전체 화면 애플리케이션과 같은 TIP의 UI를 허용하지 않으려는 애플리케이션에서 실행하려는 경우 UI 더 적은 모드를 지원해야 합니다. UI를 덜 인식하려면 TIP에서 ITfTextInputProcessorEx 인터페이스를 구현해야 합니다. 이 인터페이스가 구현되지 않으면 TIP은 UI 이하 모드 스레드에서 활성화되지 않습니다. 또한 TIP은 화면에 표시되는 UI를 표시하기 전에 ITFUIElementMgr::BeginUIElement 를 호출해야 합니다. 이 메서드는 ITfUIElementSink 를 호출하여 애플리케이션에 알립니다. 그리고 애플리케이션은 표시할 수 있는지 여부를 결정합니다. TIP이 BeginUIElement()를 호출하는 경우 TIP에는 해당 UI에 대한 ITfUIElement 인터페이스가 있어야 합니다. 애플리케이션은 UI를 그리기 위해 추가 정보를 검색하기 위해 다른 UI 특정 인터페이스를 가져오기 위해 인터페이스를 QI로 만듭니다. SYSTEM은 TIP용 ITfCandidateListUIElementITfReadingInformationUIElement 를 미리 정의합니다. TIP이 UI 덜 모드 스레드 아래에 후보 목록을 표시하려는 경우 TIP은 ITfCandidateListUIElement 인터페이스의 instance 만들고 ITFUIElementMgr::BeginUIElement를 호출해야 합니다. ITfTextInputProcessorEx::ActivateEx가 호출되면 TIP은 추가 사용자 지정 UI를 제거할 수 있도록 스레드가 UI가 더 적다는 것을 이미 알고 있습니다. 그러나 물론 QIed를 사용할 수 있는 자체 인터페이스를 구현하고 알림을 만들 수 있습니다. 따라서 TIP 및 appliITfUIElement복제는 TIP 사용자 지정 UI에 대한 협상을 가질 수 있습니다.

UIElement 지원 TIP

UIElement를 지원하는 TIP은 GUID_TFCAT_TIPCAP_UIELEMENTENABLED 분류해야 합니다. GUID_TFCAT_TIPCAP_UIELEMENTENABLED TIP은 애플리케이션이 UI의 표시 여부를 제어할 수 있도록 ITfUIElementMgr 을 사용하여 UI를 표시해야 합니다.

UIElement의 상태 표시/숨기기:ITfUIElement::Show 또는 ITfUIElement::IsShown 메서드로 표시된 상태 표시/숨기기는 실제 표시되는 상태. UIElement의 가용성과 관련이 없습니다. 쇼 상태 있는 경우 UIElement를 항상 사용할 수 있어야 합니다. 쇼 상태 애플리케이션에서 제어할 수 있습니다. 애플리케이션이 갑자기 UILess 모드로 이동하고 ITfUIElement::SHOW with FALSE 를 호출하여 TIP의 모든 UI를 숨겨서 자체 UI 그리기를 시작할 수 있습니다. 그런 다음 TIP은 몇 가지 옵션 중 하나를 사용할 수 있습니다. 1) TIP은 UIElement를 상태 숨기기로 이동하고 UpdateUIElement 생성을 시작할 수 있습니다. 2) TIP은 UI 요소가 상태 숨기기를 지원하지 않으며 Tip이 EndUIElement()를 호출하여 완료하기 때문에 UIElement를 완료할 수 있습니다.

미리 정의된 UI 요소

후보 목록: 후보 목록은 EA 입력의 주요 UI 요소 중 하나입니다. 이 UI 요소는 후보 목록과 그리기 위한 후보 문자열의 해당 수를 제공합니다.

정보 읽기 창 읽기 정보 창은 중국어 키보드 입력에 일반적입니다. 문서에 컴퍼지션 문자열로 삽입할 수 없는 단계가 있습니다. 일부 중국어 입력 프로세서는 읽기, 윗주 또는 입력 정보를 보여 주는 작은 읽기 정보 창을 엽니다.

UILessMode의 순서도

U I LessMode 흐름 차트를 보여 주는 다이어그램

TIP이 *pbShown by ITfUIElementMgr::BeginUIElement에서 TRUE를 받은 후에는 TIP에서 UIElement에 대해 UpdateUIElement를 호출할 필요가 없습니다. 그러나 TIP은 ITfUIElementMgr 및 애플리케이션이 UIElement의 상태 추적할 수 있도록 EndUIElement()를 호출해야 합니다. TIP은 BeginUIElement()가 *pbShow에서 FALSE 를 반환한 후 UpdateUIElement()를 호출해야 합니다. UI를 그리려는 애플리케이션은 BeginUIElement()의 콘텐츠를 검사 않고 BeginUIElement()에서 상태 표시를 반환하고 UpdateUIElement()에서 콘텐츠 확인을 시작합니다. 예를 들어 후보 목록 UIElement의 업데이트 플래그에는 첫 번째 UpdateUIElement()의 모든 비트가 있습니다. 즉, BeginUIElement()에서 UIElement의 콘텐츠를 준비할 필요가 없습니다.

T I P가 'ITUIElementMgr::BeginUIElement()' 및 'Application의 UIElementSink의 BeginUIElement'를 호출하는 경우를 보여 주는 다이어그램애플리케이션이 *pbShow에서 FALSE를 반환하는 것을 보여 주는 다이어그램uilessmode 흐름도

후보 목록 UIElement

PageIndex 정보: 후보 목록을 그리는 애플리케이션은 목록의 내용이 변경될 때 페이지당 문자열 수를 계산합니다(TF_CLUIE_STRING 설정됨). 후보 목록을 UILess 모드에 사용할 수 있는 동안에는 페이지 인덱스 변경이 좋지 않습니다. 즉, 선택 영역을 다음 페이지로 이동할 때 스크롤하지 않고 TIP의 후보 목록이 페이징을 동작해야 합니다. 선택 이동 시 스크롤이 발생하면 페이지 인덱스가 변경되고 애플리케이션이 페이지 인덱스 다시 계산해야 합니다. 결과는 TIP에서 예상하지 못할 수 있습니다.

선택 항목 없음:ITfCandidateListUIElement::GetSelection 은 후보 목록에 선택 항목이 없는 경우 S_FALSE 반환합니다. 첫 번째 매개 변수의 반환 값이 잘못되었습니다.