试试:Private Declare Function ImmAssociateContext Lib "imm32.dll" (ByVal Hwnd As Long, ByVal himc As Long) As LongImmAssociateContext    text1.hwnd , ByVal 0& 参考:Private Declare Function ImmCreateContext Lib "imm32.dll" () As Long
Private Declare Function ImmDestroyContext Lib "imm32.dll" (ByVal himc As Long) As Long
Private Declare Function ImmGetContext Lib "imm32.dll" (ByVal Hwnd As Long) As Long
Private Declare Function ImmGetCompositionString Lib "imm32.dll" Alias "ImmGetCompositionStringW" (ByVal himc As Long, ByVal dw As Long, lpv As Any, ByVal dw2 As Long) As Long
Private Declare Function ImmAssociateContext Lib "imm32.dll" (ByVal Hwnd As Long, ByVal himc As Long) As Long
Private Declare Function ImmReleaseContext Lib "imm32.dll" (ByVal Hwnd As Long, ByVal himc As Long) As Long
Private Declare Function ImmSetCompositionWindow Lib "imm32.dll" (ByVal himc As Long, lpCompositionForm As COMPOSITIONFORM) As Long
'Private Declare Function ImmSetStatusWindowPos Lib "imm32.dll" (ByVal himc As Long, lpPoint As POINTAPI) As Long
'Private Declare Function ImmGetStatusWindowPos Lib "imm32.dll" (ByVal himc As Long, lpPoint As POINTAPI) As Long
'Private Declare Function ImmGetCompositionWindow Lib "imm32.dll" (ByVal himc As Long, lpCompositionForm As COMPOSITIONFORM) As Long
Private Const GCS_RESULTSTR As Long = &H800&
Private Const SS_SIMPLE As Long = &HB
'   ime.n_himc = ImmCreateContext                                      '创建新的输入法上下文,这只是个直译,实际意义是在输入法接受窗口序列中增加一个新的入口,这里先行登记
   hinst = ImmGetContext(.s_ParentForm.Hwnd)                           '获取一个已创建的窗口对应线程的输入法上下文,如无特殊,一般情况下,父窗口的输入法状态为默认,则是有输入法上下文的
   If hinst = 0 Then hinst = ImmCreateContext: PG.ime_himc = hinst     '碰到及特殊的情况,没有... 那只能创建一个了
   ImmAssociateContext .n_Handle, ByVal hinst&                         '设置窗口的输入法状态,这里的意义是以怎样的输入法状态来对待指定的窗口,传 0 是禁用输入法'  利用不同的 himc , 可以实现不同的输入法预选状态,例如 Text 控件的 imemode 就是以如此形式出现的,当然代码会更为复杂'***
'***  关于输入法状态,启用\禁用 的资料
'***
'    输入上下文存储了IME的状态信息,它是IME的内部结构。对于每一个线程,系统创建和分配了一个默认的输入上下文, _
'    在线程内的每个窗口都共享输入上下文的内容。具体输入上下文的结构体定义包含在标题为"INPUTCONTEXT"的帮助文档中。 _
'    从文档中看出,输入上下文包含对应窗口句柄、写作窗口和候选窗口和状态窗口的位置、字体、消息缓冲区等等。 _
'    用函数ImmGetContext可以得到指定窗口对应的输入上下文的句柄。用 ImmReleaseContext释放指定的输入上下文。 _
'    如果不希望一个线程内的窗口都共享同一个输入上下文,那么可以调用函数 ImmCreateContext来创建一个新的上下文, _
'    并调用函数ImmAssociateContext将新创建的输入上下文与指定的窗口关联。当不用这个新创建的上下文时, _
'    调用ImmDestroyContext来释放内存。调用函数ImmLockIMC能够得到一个指定的输入上下文的指针, _
'    通过这个指针可以访问输入上下文的数据。访问结束后调用函数ImmUnlockIMC,ImmUnlockIMC减少计算锁数量, _
'    直到释放句柄。
'
'    如果没有必要我们不必查询上下文资料,直接利用 WM_IME_(Start)COMPOSITION 消息进行汉字输入
'
'    有了上面两句代码,我们的控件就可以接受输入法了,但没有对输入数据进行整理是不能够得到汉字的