今天工做過程當中遇到了edit與combobox中只能輸入數字(全角數字也容許),不想經過全半角轉換因此只能從輸入法入手。進程
查相關資料獲得方法以下:ci
1.整個窗口禁用輸入法(下面採用進程禁用):it
ImmDisableIME(GetCurrentThreadId());io
2.輸入法禁用全角模式:sso
HIMC hImc;
DWORD dwConvMode, dwSentMode;
hImc = ImmGetContext("參數禁用的句柄");
ImmGetConversionStatus(hImc, &dwConvMode, &dwSentMode);
ImmSetConversionStatus(hImc, dwConvMode & ~IME_CMODE_FULLSHAPE, dwSentMode); //取到全角模式;方法
3.輸入法直接禁用(針對指定句柄禁用)di
CEdit *pEdit = (CEdit*)m_combobox.GetWindow(GW_CHILD); //獲取combobox中的編輯框句柄;
if(pEdit)
{
::ImmGetContext(pEdit->GetSafeHwnd());
ImmAssociateContext(pEdit->GetSafeHwnd(), NULL);
}co