블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2797)
Unity3D (853)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (61)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

출처 : GPG스터디 http://www.gpgstudy.com/forum/viewtopic.php?t=8137&highlight=ime+%C7%D1%B1%DB

 

윈도우 메시지 프로시저로 IME의 컨버전 모드가 변경 되었을 경우 아래와 같이 메시지가 옵니다.

코드:
  if (WM_IME_NOTIFY == Message)
  {
    switch (wParam)
    {
    case IMN_SETCONVERSIONMODE:
      {
        //한영키가 눌렸는가 검사
        HIMC hIMC = NULL;  

        if (hIMC = ImmGetContext(this->GetWindowHandle()))  
        {  
          DWORD fdwConversion, fdwSentence;  

          BOOL bRet = ImmGetConversionStatus(hIMC, &fdwConversion, &fdwSentence);  

          if(bRet) 
          {  
            bRet = (fdwConversion & IME_CMODE_NATIVE ? TRUE : FALSE);  

            if (bRet)
            {
              //한글 모드임!
            }
            else
            {
              //영문 모드임!
            }
          }

          ImmReleaseContext(this->GetWindowHandle(), hIMC);
        }  

      }
    
    }


이렇게 알아 낸 후 컨버전 모드를 변경하고 싶다면 아래와 같이 하면 됩니다

코드:
//영문으로 변경하고 싶다면..
DWORD dwMode = IME_CMODE_ALPHANUMERIC;

//한글로 변경하고 싶다면..
DWORD dwMode = IME_CMODE_NATIVE;

ImmSetConversionStatus(hImc, dwMode, NULL);


대략 무조건 영문으로 고정을 시키시고 싶으신듯 하니.. 아래와 같이 간편화가 될듯 합니다.

코드:
if (WM_IME_NOTIFY == Message)
  {
    switch (wParam)
    {
    case IMN_SETCONVERSIONMODE:
      {
        //한영키가 눌렸는가 검사
        HIMC hIMC = NULL;  

        if (hIMC = ImmGetContext(this->GetWindowHandle()))  
        {  
           ImmSetConversionStatus(hImc, IME_CMODE_ALPHANUMERIC, NULL);
        }

          ImmReleaseContext(this->GetWindowHandle(), hIMC);
        }  

      }
    
    }
반응형

'Programming > Win32API' 카테고리의 다른 글

한영키 누름 윈도우 메세지 확인 관련  (2) 2010.09.06
Keyboard 입력 받기  (0) 2010.09.03
IME  (0) 2010.09.02
getClienteRect 와 getWindowRect  (0) 2010.08.31
mfc, api 의 HINSTANCE 구하기 GetModuleHandle(NULL)  (0) 2010.06.03
Posted by blueasa
, |