网上都说SendMessage   hwnd,WM_SETTEXT,0,Str 我怎么试都不行。拿记事本试的

解决方案 »

  1.   


    Option Explicit
    Private Const WM_CHAR = &H102
    Private Const WM_SETCURSOR = &H20
    Private Const WM_SETFOCUS = &H7
    Private Const WM_KEYDOWN = &H100
    Private Const WM_LBUTTONDOWN = &H201
    Private Const MK_LBUTTON = &H1Private Declare Function GetTickCount Lib "kernel32" () As Long
    Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As LongPrivate Declare Function CreateCaret Lib "user32" (ByVal hwnd As Long, ByVal hBitmap As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
    Private Declare Function SetCaretPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
    Private Declare Function ShowCaret Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function GetFocus Lib "user32" () As Long
    Private Declare Function GetActiveWindow Lib "user32" () As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
        ByVal wParam As Long, lParam As Any) As Long
    Private Declare Function SetCursor Lib "user32" (ByVal hCursor As Long) As Long'将一个字符串通过PostMessage传送出去
    Private Sub subPostString(ByVal lngHandle As Long, ByVal strP As String)
        Dim intP As Integer
        Dim intK As Integer
        Dim lngAsc As Long
        Dim lngP As Long
        Dim strT As String
    On Error GoTo errSub
        For intP = 0 To Len(strP) - 1
            strT = Mid(strP, intP + 1, 1)
            If Asc(strT) <= 0 Then
                lngAsc = AscW(StrConv(strT, 128))
                If lngAsc < 0 Then
                    lngAsc = lngAsc + 65536 '2^16
                End If
            Else
                lngAsc = Asc(strT)
            End If
            lngP = PostMessage(lngHandle, WM_CHAR, lngAsc, 0)
        Next intP
        Exit Sub
    errSub:End SubPrivate Sub Command1_Click()
        Call subPostString(Text1.hwnd, Text2.Text)
    End SubPrivate Sub Form_Load()
        
    End Sub
      

  2.   

    看看这个代码,重点看看subPostString函数,通过PostMessage向指定的句柄传送字符串。你可以再去的了文本框数据焦点句柄的情况下向其传送字符串。