输入法编程——获取候选项
来源:互联网 发布:大数据研发岗位 编辑:程序博客网 时间:2024/05/16 17:12
WNDPROC s_pOldProc = NULL;
LRESULT CALLBACK CImeFilterDlg::SubProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
switch (Msg)
{
case WM_IME_NOTIFY:
if(wParam==IMN_OPENCANDIDATE || wParam==IMN_CHANGECANDIDATE )
{
HIMC hIMC = ::ImmGetContext(hWnd);
if(hIMC != NULL)
{
DWORD dwSize = 0;
::ImmGetCandidateListCount(hIMC, &dwSize);
for(UINT32 i=0; i<dwSize; ++i)
{
if((dwSize=::ImmGetCandidateList(hIMC, i, NULL, 0)) > 0)
{
LPCANDIDATELIST lpList = (LPCANDIDATELIST)new CHAR[dwSize];
if (lpList == NULL)
{
continue;
}
lpList->dwSize = sizeof(CANDIDATELIST);
dwSize = ::ImmGetCandidateList(hIMC, i, lpList, dwSize);
if(lpList->dwCount > 0)
{
DWORD dwStart = lpList->dwPageStart;
DWORD dwEnd = lpList->dwPageStart+lpList->dwPageSize > lpList->dwCount
? lpList->dwCount : lpList->dwPageStart+lpList->dwPageSize;
CString data = (CString)(LPCWSTR)((PBYTE)lpList + lpList->dwOffset[dwStart]);
for (UINT32 j = dwStart+1; j< dwEnd; j++)
{
LPCWSTR lpszString = (LPCWSTR)((PBYTE)lpList + lpList->dwOffset[j]);
data += TEXT(" ");
data += (CString)lpszString;
}
((CImeFilterDlg *)AfxGetMainWnd())->SetDlgItemText(IDC_LBLCANDIDATE, data);
data = (CString)(LPCWSTR)((PBYTE)lpList + lpList->dwOffset[lpList->dwSelection]);
((CImeFilterDlg *)AfxGetMainWnd())->SetDlgItemText(IDC_LBLCURCAND, data);
}
delete []lpList;
}
}
::ImmReleaseContext(hWnd, hIMC);
}
}
else if(wParam == IMN_CLOSECANDIDATE)
{
((CImeFilterDlg *)AfxGetMainWnd())->SetDlgItemText(IDC_LBLCANDIDATE, TEXT("输入法候选项..."));
((CImeFilterDlg *)AfxGetMainWnd())->SetDlgItemText(IDC_LBLCURCAND, TEXT("当前候选项..."));
}
break;
default:
break;
}
return CallWindowProc(s_pOldProc, hWnd, Msg, wParam, lParam);
}
s_pOldProc = (WNDPROC)(INT64)::SetWindowLong(GetDlgItem(IDC_EDIT1)->GetSafeHwnd(), GWL_WNDPROC, (LONG)(INT64)SubProc);
- 输入法编程——获取候选项
- 获取输入法候选调研
- 写一个Android输入法02——候选窗、转换
- C++获取输入法名字,调整输入法候选框位置
- Ubuntu 输入法中文录入候选项不正确
- 【ubuntu_problems】搜狗输入法打字没有候选项
- 如何获取搜狗输入法键盘的高度~搜狗输入法上边有个候选栏问题
- rime输入法候选字横排显示
- CentOS 6.3输入法不显示候选词
- Ubuntu fcitx输入法无法显示候选词
- 正则表达式(候选项)
- Android获取输入法高度——输入法与页面布局无缝切换
- 获取输入法
- 获取输入法
- android 输入法开发候选区域联想字库词库思路
- Centos不显示ibus输入法的候选字的问题
- CentOS 6.5 中文输入法没有候选框解决
- Mac 输入法候选词框消失的解决方法
- Java中四种XML解析技术
- 转载面经(程序员篇)
- 站外分享的js实现
- access
- 如何编写多页标签页 Tab Control组件,附全部代码
- 输入法编程——获取候选项
- Introduction to Debugging-1 (zz, By Richard "superpig" Fine )
- DataGridView导出excel/xml
- Introduction to Debugging-2 (zz, By Richard "superpig" Fine )
- DataGrid导出EXCEL的几个方法
- 使用VS2005进行负载测试
- VS2005(2008)+WDK7600开发环境
- java导出EXCEL并操作格式
- JAVA导EXCEL