如果使用的VB5.0,则查看有没有一个属性是IMEMode,如果有就设定为1 代表开启,那 便可以每次进入这个Control项时就切换成中文输入。如果没有,那只好自己做。 '以下在.Bas Public Declare Function GetKeyboardLayout Lib "user32" (ByVal dwLayout As Long) As Long Public Declare Function ImmIsIME Lib "imm32.dll" (ByVal hkl As Long) As Long Public Declare Function ImmSimulateHotKey Lib "imm32.dll" (ByVal hwnd As Long, ByVal dw As Long) As Long Const IME_THOTKEY_IME_NONIME_TOGGLE = &H70 PuBlic Sub Chg2Chinese(ByVal hwnd As Long) '传入Control项或Form 的hwnd Dim hkb As Long hkb = GetKeyboardLayout(0) '取得目前Thread的Keyboard Layout If ImmIsIME(hkb) = 0 Then '代表不是中文输入 ImmSimulateHotKey hwnd, IME_THOTKEY_IME_NONIME_TOGGLE '模拟按Strl-Space End If End Sub PuBlic Sub Chg2English(ByVal hwnd As Long) '传入Control项或Form 的hwnd Dim hkb As Long hkb = GetKeyboardLayout(0) '取得目前Thread的Keyboard Layout If ImmIsIME(hkb) = 1 Then '代表是中文输入 ImmSimulateHotKey hwnd, IME_THOTKEY_IME_NONIME_TOGGLE '模拟按Strl-Space End If End Sub '以下在Form Private Sub Form_Load() Call Chg2Chinese(Me.hwnd) End Sub |