如何解决ImmSetCompositionWindow没有显示任何窗口[c ++]
我正在尝试将合成窗口强制放置在某个位置。 ImmSetCandidateWindow 可以正常工作,但 ImmSetCompositionWindow 不能正常工作。
我已经捕获了以下IME消息:
这是示例代码:
void Sample::ForcedIMEWindow(const POINT &ptwindow,HWND hwnd)
{
HIMC himc = ImmGetContext(hwnd);
if (himc == NULL) return;
CANDIDATEFORM cdf;
cdf.dwIndex = 0;
cdf.dwStyle = CFS_CANDIDATEPOS;
cdf.ptCurrentPos.x = ptwindow.x;
cdf.ptCurrentPos.y = ptwindow.y;
ImmSetCandidateWindow(himc,&cdf); // This is OK
COMPOSITIONFORM cpf;
ImmGetCompositionWindow(himc,&cpf);
cpf.dwStyle = CFS_FORCE_POSITION;
cpf.ptCurrentPos.x = ptwindow.x;
cpf.ptCurrentPos.y = ptwindow.y;
ImmSetCompositionWindow(himc,&cpf); // No Composition window shown
ImmReleaseContext(hwnd,himc);
}
我有什么想念的吗?
TIA
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。