E D R S I H C RSS
ID
Password
Join
큰 일이라고 지레 겁먹지 마라. 큰 일이라고 해서 반드시 작은 일보다 어려운 것은 아니다. 소진되는 에너지는 일의 크기와는 무관하다. -김용삼

 * 데브피아에서 퍼왔습니다. 원저자의 허락을 받지는 못했습니다만, 혹시나 원저자께서 보신다면 연락부탁드립니다.
  • 개인적으로 보관하는 목적으로 올린 것이라는 점 밝혀둡니다.
#pragma comment (lib, "imm32.lib")
#include "imm.h"

// 한글입력상태인지 영어입력상태인지 알아보는 함수입니다.
BOOL GetHangulMode()
{
    BOOL bRet = FALSE;  
    HWND hFocusWnd = ::GetFocus();      
    HIMC hIMC = NULL;  
    if (hIMC = ImmGetContext(hFocusWnd))  
    {  
        DWORD fdwConversion, fdwSentence;  
        BOOL bRet2 = ImmGetConversionStatus(hIMC, &fdwConversion, &fdwSentence);  
        if(bRet2) {  
            bRet = (fdwConversion & IME_CMODE_NATIVE ? TRUE : FALSE);  
        }
        bRet2 = ImmReleaseContext(hFocusWnd, hIMC);  
    }  
    return bRet;  
}

// hWnd : 에디트박스 같은 윈도우의 핸들이 되겠지요.
// uMode : 예를 들자면 한글과 영어 입력모드로 변경하고자 할 때 다음 중에 하나를 선택하시면 됩니다.
//              IME_CMODE_HANGUL : 한글
//              IME_CMODE_ALPHANUMERIC : 영어
void SetInputLanguageMode(HWND hWnd, UINT uMode)
{
    ASSERT(hWnd);

    HIMC data;
    data = ImmGetContext(hWnd);
    ImmSetConversionStatus (data, uMode, 0);
    ImmReleaseContext (hWnd, data); 
}

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2010-10-28 12:42:52
Processing time 0.0399 sec