关闭输入框的输入法的方法,请问如何关闭输入法,很急,在线等
关闭输入框的输入法的方法,请问如何关闭输入法,很急,在线等
HIMC hImc = ImmGetContext(((CEdit*)this->GetDlgItem(IDC_EDTKKSTHINMEI))->m_hWnd);
if(ImmGetOpenStatus(hImc)) ImmSetOpenStatus(hImc, FALSE); // 输入法状态 TRUE..On / FALSE..Off
ImmReleaseContext(((CEdit*)this->GetDlgItem(IDC_EDTKKSTHINMEI))->m_hWnd, hImc);
有文章说用上面的代码可以关闭中文输入法,但我试了试,初始化时可以不显示,但选择了ms拼音后仍然可以进入中文阿?
问题点数:100、回复次数:12Top
1 楼laiyiling(陌生人[MVP])回复于 2004-08-02 09:58:44 得分 0
是一个帖子Top
2 楼laiyiling(陌生人[MVP])回复于 2004-08-02 09:59:26 得分 10
#program comment(lib,"imm32.lib")Top
3 楼shiziho_cn(狮子泉)回复于 2004-08-02 10:03:16 得分 0
不是一个贴子,刚才的通过编译了,但不好用啊,ms拼音仍然可以选择,并且可以输入中文,
如果编辑控件得到焦点,用户就只能输入半角呢,我想把输入法关了,用户就入不了汉字了,谁能告诉我呢?Top
4 楼aspnetwuxueyou(SHIP IT)回复于 2004-08-02 10:13:11 得分 30
在OnShow中
ImmAssociateContext(g_hWnd, NULL);Top
5 楼aspnetwuxueyou(SHIP IT)回复于 2004-08-02 10:15:57 得分 0
绝对好用Top
6 楼shiziho_cn(狮子泉)回复于 2004-08-02 10:21:28 得分 0
我在SETFOCUS事件加入,仍然不好用啊
现在我在对话框放了很多EDIT控件,然后只要其中的一个有这种功能,怎么办呢?
TO aspnetwuxueyou(我的心跟着希望在动) :
请问你的ImmAssociateContext(g_hWnd, NULL);里的g_hWnd是控件句柄码?
下面是我的代码
CEdit* pEdit;
pEdit = (CEdit*)GetDlgItem(IDC_EDITSUBAC1);
/*HIMC hImc = ImmGetContext(pEdit->m_hWnd);
if(ImmGetOpenStatus(hImc))
ImmSetOpenStatus(hImc, FALSE);
ImmReleaseContext(pEdit->m_hWnd, hImc); */
ImmAssociateContext(pEdit->m_hWnd, NULL);
Top
7 楼aspnetwuxueyou(SHIP IT)回复于 2004-08-02 10:30:59 得分 0
对呀,
对话框连input context都没有了,怎么能输入汉字呢?Top
8 楼shiziho_cn(狮子泉)回复于 2004-08-02 10:56:59 得分 0
可以阿,我都试过了Top
9 楼BestBear(天外飞熊)回复于 2004-08-02 11:05:17 得分 0
怎么一个帖子发两次啊,呵呵Top
10 楼aspnetwuxueyou(SHIP IT)回复于 2004-08-02 11:09:05 得分 20
void CTestDlg::OnEnSetfocusEdit1()
{
CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT1);
ImmAssociateContext(pEdit->m_hWnd, NULL);
}
我这里没有问题呀,微软拼音能激活,但是你输入的话,也都是英文Top
11 楼lixiaosan(小三)回复于 2004-08-02 11:14:03 得分 40
打开/关闭输入法
void CHideDlgDlg::OnButton9()
{
// TODO: Add your control notification handler code here
CWnd * pWnd = GetDlgItem(IDC_TREE1);
if (pWnd){
pWnd->SetFocus();
ImmSimulateHotKey(pWnd->m_hWnd, IME_CHOTKEY_IME_NONIME_TOGGLE);
HIMC hIMC = ImmGetContext(pWnd->m_hWnd);
DWORD dwConv, dwSent;
DWORD dwTemp;
ImmGetConversionStatus(hIMC,&dwConv,&dwSent);
dwConv |= IME_CMODE_SOFTKBD;
ImmSetConversionStatus(hIMC,dwConv,dwSent);
ImmReleaseContext(pWnd->m_hWnd,hIMC);
}
}Top
12 楼shiziho_cn(狮子泉)回复于 2004-08-02 12:02:26 得分 0
再次感谢大家了,可能是我测试的有问题,现在好用了。
aspnetwuxueyou(我的心跟着希望在动) 的比较简单,多谢。Top




