+ -
当前位置:首页 → 问答吧 → 输入法问题

输入法问题

时间:2011-12-19

来源:互联网

我建了一个窗口,在当前窗口切换搜狗输入法时。我再按下键盘,就出现搜狗输入状态... 怎么取消或屏蔽?相关函数

作者: lile1234_show   发布时间: 2011-12-19

获取搜狗输入窗口句柄然后隐藏它

作者: heksn   发布时间: 2011-12-19

抄来的:
// this code from ZWELL 获得输入法处理后的字符串 
if(pmsg->message==WM_IME_COMPOSITION)
{
DWORD dwSize;
char lpstr[128];

if(pmsg->lParam & GCS_RESULTSTR)
{
//先获取当前正在输入的窗口的输入法句柄
hIMC = ImmGetContext(hWnd);
if(!hIMC) return 0;
// 先将ImmGetCompositionString的获取长度设为0来获取字符串大小.
dwSize = ImmGetCompositionString(hIMC, GCS_RESULTSTR, NULL, 0);
// 缓冲区大小要加上字符串的NULL结束符大小,
// 考虑到UNICODE
dwSize += sizeof(WCHAR);
memset(lpstr, 0, sizeof(lpstr));
// 再调用一次.ImmGetCompositionString获取字符串
ImmGetCompositionString(hIMC, GCS_RESULTSTR, lpstr, dwSize);
//现在lpstr里面即是输入的汉字了。你可以处理lpstr,当然也可以保存为文件...
//MessageBox(NULL, lpstr, lpstr, MB_OK); 
}
}
*/

作者: schlafenhamster   发布时间: 2011-12-19

如果不想要汉字输入:
OnSetFocus(CWnd* pOldWnd) 中:
ImmAssociateContext(this->m_hWnd, NULL);

作者: schlafenhamster   发布时间: 2011-12-19

ImmAssociateContext(this->m_hWnd, NULL);把我的中文输入给屏蔽了.. 那我想恢复怎么办?

作者: lile1234_show   发布时间: 2011-12-19

那怎么恢复汉字输入

作者: lile1234_show   发布时间: 2011-12-19

HIMC WINAPI ImmCreateContext(void);
看源码有这个函数,你可以试试。。。

本人找不到 Coreimm.lib,没有办法测试。。

作者: shen_wei   发布时间: 2011-12-20