다음을 통해 공유


IME 샘플: IME 모드 제어 및 IME 수준 3 구현 방법 설명

업데이트: 2007년 11월

IME 샘플은 CEdit의 서브클래스인 CIMEEdit를 사용하여 edit 컨트롤을 만듭니다. CIMEEdit는 모든 입력 문자를 처리하고 DBCS 문자열을 구성합니다. 이 샘플의 기능은 다음과 같습니다.

  • 이 샘플은 C/C++을 사용하여 IME 모드를 제어하는 방법을 보여 줍니다. 입력 언어, 모양 등에 대해 CIMEEdit의 초기 IME 모드를 설정할 수 있습니다. 초기에 edit 컨트롤이 한국어 문자를 인식하도록 설정하려면 이 샘플에 나온 것처럼 코드를 추가합니다. 영어만 사용하려는 경우에는 IME를 비활성화할 수 있습니다.

  • 또한 이 샘플은 소스 코드에서 IME 수준 3을 구현하는 방법을 보여 줍니다. IME 수준 3은 동아시아 사용자를 위한 더 편리하고 강력한 기능을 제공합니다. 이 샘플을 사용하여 IME 수준 3을 지원하는 사용자 정의 컨트롤 또는 창을 만들 수 있습니다.

  • 이 샘플은 자판 배열에 따라 ANSI 유니코드 변환에 사용되는 글꼴 및 코드 페이지를 결정하므로 글꼴 또는 코드 페이지를 변경하지 않고 모든 동아시아 언어에 대한 네 개의 다른 IME를 사용할 수 있습니다. 이것은 Windows 2000의 기능이며 IME 수준 3을 지원하는 데 필요한 사항은 아닙니다.

  • GetCombinedCharLength 함수는 이 샘플에서 서로게이트 문자만 지원합니다. 결합 문자를 지원해야 할 경우에는 코드를 메서드에 추가합니다.

IME 함수를 사용하려면 프로그램에 IMM.H 및 IMM32.LIB에 대한 링크가 포함되어 있어야 합니다.

보안 정보:

이 샘플 코드는 개념을 보여 주기 위해 제공되며 가장 안전한 코드 작성 방법을 제시하지 않을 수 있으므로 응용 프로그램이나 웹 사이트에서 사용할 수 없습니다. Microsoft는 샘플 코드를 원래 용도 이외의 다른 용도로 사용하는 경우 발생하는 부수적이나 파생적인 손해에 대해 책임을 지지 않습니다.

샘플 및 이를 설치하기 위한 지침을 가져오려면

  • Visual Studio의 도움말 메뉴에서 샘플을 클릭합니다.

    자세한 내용은 샘플 파일 찾기를 참조하십시오.

  • 최신 버전 및 전체 샘플 목록은 Visual Studio 2008 Samples 페이지에서 온라인으로 사용할 수 있습니다.

  • 컴퓨터의 하드 디스크에서도 샘플을 찾을 수 있습니다. 기본적으로 샘플과 추가 정보 파일은 \Program Files\Visual Studio 9.0\Samples\ 아래의 폴더에 복사됩니다. Visual Studio Express Edition의 경우에는 모든 샘플이 온라인에 있습니다.

샘플 빌드 및 실행

이 샘플을 빌드하고 실행하려면

  1. IME.sln 솔루션을 엽니다.

  2. 빌드 메뉴에서 빌드를 클릭합니다.

  3. 디버그 메뉴에서 디버깅하지 않고 시작을 클릭합니다.

샘플을 실행하고 다음 기능을 사용해 봅니다.

IME 모드 제어

  • 확인란을 사용하여 IME 모드를 변경할 수 있습니다. 확인란을 사용하여 옵션을 변경하면 IME 창의 상태가 변경됩니다.

  • IME 창을 사용하여 IME 모드를 변경할 수 있습니다. IME 창을 사용하여 옵션을 변경하면 샘플의 확인란이 변경됩니다.

  • IME를 활성화하거나 비활성화할 수 있습니다.

IME 수준 3 구현

  • 더블바이트 문자를 입력할 경우 문자열 합성 방법을 볼 수 있습니다.

  • Windows 2000에 적당한 글꼴이 있는 경우 서로게이트 문자를 볼 수 있습니다.

클래스 및 키워드

이 샘플에서는 다음의 클래스를 보여 줍니다.

CEdit

이 샘플에서는 다음의 키워드를 보여 줍니다.

CBitmap::OnPaint; CEdit::OnChar; CEdit::OnSetFocus; CEdit::OnKillFocus; CEdit::OnKeyDown; CEdit::WindowProc; ImmGetContext; ImmReleaseContext; ImmGetConversionStatus; ImmSetConversionStatus; ImmGetOpenStatus; ImmSetOpenStatus; ImmAssociateContext; ImmNotifyIME; ImmGetCompositionString; ImmGetProperty; ImmSetCandidateWIndow; ImmSetCompositionWIndow

참고 항목

기타 리소스

국가별 샘플