Ab.の日記: 特定の EDIT control だけ IME を殺してみる
日記 by
Ab.
MSDN Lib. 調べて、こんな感じにさくっと書いてみる。
HIMC hImc = ImmCreateContext();
ImmAssociateContext(hWndEdit, hImc);
ImmSetConversionStatus(hImc, IME_CMODE_ALPHANUMERIC, IME_SMODE_NONE);
で、試してみたら IME2000 とか Win98SE+IME98(かな?) は期待通りの動作になるのに、VJE だけが何故か同じダイアログの他の Edit control での入力モードが半角文字入力モードに…
色々試してみた結果、最後の ImmSetConversionStatus() を行わず、ImmCreateContext(), ImmAssociateContext() だけでもそうなってしまう模様。
検索してみると 同じことで悩んでる人がいて、解決出来たかどうかは不明だけど、とりあえずやっぱり VJE がちょっと変らしい…
どうしたもんだべなーと MSDN Lib. を検索しまくってるとマイクロソフト サポート技術情報 - 416204 [SDK32]エディットボックスの読み取り専用解除後IMEの無効化が解除される を発見。
む、ImmAssociateContext(hWnd, NULL); だけで IME 無効化されるのか。
ということで試してみたらばっちりだったので めでたしめでたしなんだけど…
ここまでたどり着くのに何時間かかったかは、ちょっと教えられんなぁ!(ぉ
Imm API vs. VJE 4.0 More ログイン