게임에서 한/영 키를 누르고 나면, IME 때문에 WM_KEYDOWN 등의 메시지가 다르게 처리돼서 원래 의도대로 키가 작동하지 않는 문제가 생깁니다. 이걸 해결하는 간단한 방법은 평소엔 IME와 윈도우 핸들의 연결을 끊어두고, 한글을 입력 받아야 할 때만 연결하는 것입니다. 이에 대한 힌트는 DirectX SDK의 DXUT에서 IME 관련 소스 코드를 보면 얻을 수 있습니다. 대략 다음 소스 코드처럼 처리하면 됩니다.
HWND global_window_handle;HIMC global_ime_context;void save_ime_context(){global_ime_context = ImmGetContext(global_window_handle);ImmReleaseContext(global_window_handle, global_ime_context);}void set_ime_enablement(bool enablement){ImmAssociateContext(global_window_handle, enablement ? global_ime_context : NULL);}

댓글을 달아 주세요