- ベストアンサー
VBにてIMEの入力モードを変えるには?
VB6を使ってます。フォームでテキストボックスのプロパティにはIMEModeがありますが、コンボボックスやグリッドにはありません。IMEModeがオンになっていて、これらにフォーカスが移るときにIMEModeをオフ(入力モードを直接入力)にしたいのですが、方法はありますか?教えてください宜しくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
フォームにコンボボックスを1つ貼り付けて下記のコードを試してみて下さい。 ちなみに2つ目の引数をTrueにするとIMEがオンになります。 Option Explicit Private Declare Function ImmGetContext Lib "imm32.dll" (ByVal hwnd As Long) As Long Private Declare Function ImmReleaseContext Lib "imm32.dll" (ByVal hwnd As Long, ByVal himc As Long) As Long Private Declare Function ImmSetOpenStatus Lib "imm32.dll" (ByVal himc As Long, ByVal b As Long) As Long Private Sub subControlIME(hwnd As Long, vntMode As Variant) Dim lngHContext As Long lngHContext = ImmGetContext(hwnd) If lngHContext <> 0 Then Call ImmSetOpenStatus(lngHContext, CLng(vntMode)) Call ImmReleaseContext(hwnd, vntMode) End If End Sub Private Sub Combo1_GotFocus() Call subControlIME(Combo1.hwnd, False) End Sub
お礼
ありがとうございます。 バッチし、うまくいきました。 また、今後ともよろしくお願いいたします。