プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (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
    • good
    • 1
この回答へのお礼

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

お礼日時:2004/10/21 12:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています