• ベストアンサー

VBにてIMEの入力モードを変えるには?

VB6を使ってます。フォームでテキストボックスのプロパティにはIMEModeがありますが、コンボボックスやグリッドにはありません。IMEModeがオンになっていて、これらにフォーカスが移るときにIMEModeをオフ(入力モードを直接入力)にしたいのですが、方法はありますか?教えてください宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mfuku
  • ベストアンサー率50% (173/345)
回答No.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

Smilie
質問者

お礼

ありがとうございます。 バッチし、うまくいきました。 また、今後ともよろしくお願いいたします。