哈哈 !设置对象的ime属性!!

解决方案 »

  1.   

    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
    Public Const IME_THOTKEY_IME_NONIME_TOGGLE = &H70
    hkb = GetKeyboardLayout(0) '取得目前Thread的Keyboard Layout
            If ImmIsIME(hkb) = 0 Then  '代表不是中文输入
                ImmSimulateHotKey txtInput(Index).hwnd, IME_THOTKEY_IME_NONIME_TOGGLE  '模拟按Strl-Space
            End If
    hkb = GetKeyboardLayout(0) '取得目前Thread的Keyboard Layout
            If ImmIsIME(hkb) = 1 Then  '代表是中文输入
                ImmSimulateHotKey txtInput(Index).hwnd, IME_THOTKEY_IME_NONIME_TOGGLE  '模拟按Strl-Space
            End If
      

  2.   

    好像在2k上必须用
    Const IME_CHOTKEY_IME_NONIME_TOGGLE = &H10
      

  3.   

    好像IME_THOTKEY_IME_NONIME_TOGGLE不行,
    98上IME_CHOTKEY_IME_NONIME_TOGGLE = &H10 也可以,我刚试过
      

  4.   

    IME_THOTKEY_IME_NONIME_TOGGLE好像是繁体输入法
      

  5.   

    ImmSimulateHotKey txtInput(Index).hwnd, IME_THOTKEY_IME_NONIME_TOGGLE 
    txtInput(Index)出错了,怎么回事?