본문 바로가기
Programming/3. MFC

IME 이용 한영키 전환 제어

by S.W 2022. 12. 2.

void ClassName::OnEnSetfocusXXXXXX()
{
    DWORD conVersion, senTence;
    HIMC himc = ::ImmGetContext(GetDlgItem(IDC_EDIT_IAF_NAME)->GetSafeHwnd());
    ::ImmGetConversionStatus(himc, &conVersion, &senTence);
    ::ImmSetConversionStatus(himc, IME_CMODE_ALPHANUMERIC, senTence);     // 영어 입력으로 변경
    ::ImmReleaseContext(GetDlgItem(IDC_EDIT_IAF_NAME)->GetSafeHwnd(), himc);
}

BOOL ClassName::PreTranslateMessage( MSG* pMsg )
{
    if(pMsg->message == WM_KEYDOWN)
    {
        // ESC 막기
        if(pMsg->wParam == VK_ESCAPE)
        {
            return TRUE;
        }

        // 엔터 막기
        if(pMsg->wParam == VK_RETURN)
        {
            return TRUE;
        }

        // 한영변환 막기
        if(pMsg->wParam == VK_PROCESSKEY)
        {
            return TRUE;
        }
    }
    return CDialog::PreTranslateMessage(pMsg);
 }