Declare Function SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)
Declare Function SendMessageBynum& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long)
Declare Function SendMessageByString& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) 
说明 
调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数不会返回。SendMessageBynum, SendMessageByString是该函数的“类型安全”声明形式 
返回值 
Long,由具体的消息决定 
参数表 
参数 类型及说明 
hwnd Long,要接收消息的那个窗口的句柄 
wMsg Long,消息的标识符 
wParam Long,具体取决于消息 
lParam Any,具体取决于消息 

解决方案 »

  1.   

    ' Window Messages
    Const WM_NULL = &H0
    Const WM_CREATE = &H1
    Const WM_DESTROY = &H2
    Const WM_MOVE = &H3
    Const WM_SIZE = &H5Const WM_ACTIVATE = &H6
    '
    '  WM_ACTIVATE state valuesConst WA_INACTIVE = 0
    Const WA_ACTIVE = 1
    Const WA_CLICKACTIVE = 2Const WM_SETFOCUS = &H7
    Const WM_KILLFOCUS = &H8
    Const WM_ENABLE = &HA
    Const WM_SETREDRAW = &HB
    Const WM_SETTEXT = &HC
    Const WM_GETTEXT = &HD
    Const WM_GETTEXTLENGTH = &HE
    Const WM_PAINT = &HF
    Const WM_CLOSE = &H10
    Const WM_QUERYENDSESSION = &H11
    Const WM_QUIT = &H12
    Const WM_QUERYOPEN = &H13
    Const WM_ERASEBKGND = &H14
    Const WM_SYSCOLORCHANGE = &H15
    Const WM_ENDSESSION = &H16
    Const WM_SHOWWINDOW = &H18
    Const WM_WININICHANGE = &H1A
    Const WM_DEVMODECHANGE = &H1B
    Const WM_ACTIVATEAPP = &H1C
    Const WM_FONTCHANGE = &H1D
    Const WM_TIMECHANGE = &H1E
    Const WM_CANCELMODE = &H1F
    Const WM_SETCURSOR = &H20
    Const WM_MOUSEACTIVATE = &H21
    Const WM_CHILDACTIVATE = &H22
    Const WM_QUEUESYNC = &H23Const WM_GETMINMAXINFO = &H24Const WM_PAINTICON = &H26
    Const WM_ICONERASEBKGND = &H27
    Const WM_NEXTDLGCTL = &H28
    Const WM_SPOOLERSTATUS = &H2A
    Const WM_DRAWITEM = &H2B
    Const WM_MEASUREITEM = &H2C
    Const WM_DELETEITEM = &H2D
    Const WM_VKEYTOITEM = &H2E
    Const WM_CHARTOITEM = &H2F
    Const WM_SETFONT = &H30
    Const WM_GETFONT = &H31
    Const WM_SETHOTKEY = &H32
    Const WM_GETHOTKEY = &H33
    Const WM_QUERYDRAGICON = &H37
    Const WM_COMPAREITEM = &H39
    Const WM_COMPACTING = &H41
    Const WM_OTHERWINDOWCREATED = &H42               '  no longer suported
    Const WM_OTHERWINDOWDESTROYED = &H43             '  no longer suported
    Const WM_COMMNOTIFY = &H44                       '  no longer suported' notifications passed in low word of lParam on WM_COMMNOTIFY messages
    Const CN_RECEIVE = &H1
    Const CN_TRANSMIT = &H2
    Const CN_EVENT = &H4Const WM_WINDOWPOSCHANGING = &H46
    Const WM_WINDOWPOSCHANGED = &H47Const WM_POWER = &H48
    '
    '  wParam for WM_POWER window message and DRV_POWER driver notificationConst PWR_OK = 1
    Const PWR_FAIL = (-1)
    Const PWR_SUSPENDREQUEST = 1
    Const PWR_SUSPENDRESUME = 2
    Const PWR_CRITICALRESUME = 3Const WM_COPYDATA = &H4A
    Const WM_CANCELJOURNAL = &H4BType COPYDATASTRUCT
            dwData As Long
            cbData As Long
            lpData As Long
    End TypeConst WM_NCCREATE = &H81
    Const WM_NCDESTROY = &H82
    Const WM_NCCALCSIZE = &H83
    Const WM_NCHITTEST = &H84
    Const WM_NCPAINT = &H85
    Const WM_NCACTIVATE = &H86
    Const WM_GETDLGCODE = &H87
    Const WM_NCMOUSEMOVE = &HA0
    Const WM_NCLBUTTONDOWN = &HA1
    Const WM_NCLBUTTONUP = &HA2
    Const WM_NCLBUTTONDBLCLK = &HA3
    Const WM_NCRBUTTONDOWN = &HA4
    Const WM_NCRBUTTONUP = &HA5
    Const WM_NCRBUTTONDBLCLK = &HA6
    Const WM_NCMBUTTONDOWN = &HA7
    Const WM_NCMBUTTONUP = &HA8
    Const WM_NCMBUTTONDBLCLK = &HA9Const WM_KEYFIRST = &H100
    Const WM_KEYDOWN = &H100
    Const WM_KEYUP = &H101
    Const WM_CHAR = &H102
    Const WM_DEADCHAR = &H103
    Const WM_SYSKEYDOWN = &H104
    Const WM_SYSKEYUP = &H105
    Const WM_SYSCHAR = &H106
    Const WM_SYSDEADCHAR = &H107
    Const WM_KEYLAST = &H108
    Const WM_INITDIALOG = &H110
    Const WM_COMMAND = &H111
    Const WM_SYSCOMMAND = &H112
    Const WM_TIMER = &H113
    Const WM_HSCROLL = &H114
    Const WM_VSCROLL = &H115
    Const WM_INITMENU = &H116
    Const WM_INITMENUPOPUP = &H117
    Const WM_MENUSELECT = &H11F
    Const WM_MENUCHAR = &H120
    Const WM_ENTERIDLE = &H121Const WM_CTLCOLORMSGBOX = &H132
    Const WM_CTLCOLOREDIT = &H133
    Const WM_CTLCOLORLISTBOX = &H134
    Const WM_CTLCOLORBTN = &H135
    Const WM_CTLCOLORDLG = &H136
    Const WM_CTLCOLORSCROLLBAR = &H137
    Const WM_CTLCOLORSTATIC = &H138Const WM_MOUSEFIRST = &H200
    Const WM_MOUSEMOVE = &H200
    Const WM_LBUTTONDOWN = &H201
    Const WM_LBUTTONUP = &H202
    Const WM_LBUTTONDBLCLK = &H203
    Const WM_RBUTTONDOWN = &H204
    Const WM_RBUTTONUP = &H205
    Const WM_RBUTTONDBLCLK = &H206
    Const WM_MBUTTONDOWN = &H207
    Const WM_MBUTTONUP = &H208
    Const WM_MBUTTONDBLCLK = &H209
    Const WM_MOUSELAST = &H209Const WM_PARENTNOTIFY = &H210
    Const WM_ENTERMENULOOP = &H211
    Const WM_EXITMENULOOP = &H212
    Const WM_MDICREATE = &H220
    Const WM_MDIDESTROY = &H221
    Const WM_MDIACTIVATE = &H222
    Const WM_MDIRESTORE = &H223
    Const WM_MDINEXT = &H224
    Const WM_MDIMAXIMIZE = &H225
    Const WM_MDITILE = &H226
    Const WM_MDICASCADE = &H227
    Const WM_MDIICONARRANGE = &H228
    Const WM_MDIGETACTIVE = &H229
    Const WM_MDISETMENU = &H230
    Const WM_DROPFILES = &H233
    Const WM_MDIREFRESHMENU = &H234
    Const WM_CUT = &H300
    Const WM_COPY = &H301
    Const WM_PASTE = &H302
    Const WM_CLEAR = &H303
    Const WM_UNDO = &H304
    Const WM_RENDERFORMAT = &H305
    Const WM_RENDERALLFORMATS = &H306
    Const WM_DESTROYCLIPBOARD = &H307
    Const WM_DRAWCLIPBOARD = &H308
    Const WM_PAINTCLIPBOARD = &H309
    Const WM_VSCROLLCLIPBOARD = &H30A
    Const WM_SIZECLIPBOARD = &H30B
    Const WM_ASKCBFORMATNAME = &H30C
    Const WM_CHANGECBCHAIN = &H30D
    Const WM_HSCROLLCLIPBOARD = &H30E
    Const WM_QUERYNEWPALETTE = &H30F
    Const WM_PALETTEISCHANGING = &H310
    Const WM_PALETTECHANGED = &H311
    Const WM_HOTKEY = &H312Const WM_PENWINFIRST = &H380
    Const WM_PENWINLAST = &H38F' NOTE: All Message Numbers below 0x0400 are RESERVED.' Private Window Messages Start Here:
    Const WM_USER = &H400' WM_SYNCTASK Commands
      

  2.   

    Declare Function SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)
    Declare Function SendMessageBynum& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long)
    Declare Function SendMessageByString& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) 
    说明 
    调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数不会返回。SendMessageBynum, SendMessageByString是该函数的“类型安全”声明形式 
    返回值 
    Long,由具体的消息决定 
    参数表 
    参数 类型及说明 
    hwnd Long,要接收消息的那个窗口的句柄 
    wMsg Long,消息的标识符 
    wParam Long,具体取决于消息 
    lParam Any,具体取决于消息 
      

  3.   

    多行TextBox中的快速处理功能在处理多行TextBox时 希望了解多行TextBox中目前共有多少行文字。如果用VB自身的语句或函数来实现的话,要写不短的代码,而且由于要采用顺序查找的办法来完成,因此代码的执行效率也很低。如果使用SendMessage函数则可以大大减少代码量,并大幅度的提高执行效率。
       用SendMessage函数完成上面两个任务的方法非常简单,每个任务只需简单地发送一条消息给多行TextBox即可,两个消息分别为:EM_GETLINECOUNT、EM_GETLINEDeclare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long,lParam As Any) As Long
    Public Const EM_GETLINECOUNT=&HBA
    Public Const EM_GETLINE=&HC4
    在Form1的代码模块中写如下代码:
        Private Sub Command1_Click()
        Dim str(256) As Byte
        str(1)=1 '最大允许存放256个字符
        '获取总行数,结果显示在文本框txtLineCount中
        txtlineCount=SendMessage(Text1.hwnd,EM_GETLINECOUNT,0,0)
        '获取第3行的数据放在str中,转换为字符串后显示在文本框txtString中
        SendMessage Text1.hwnd,EM_GETLINE,2,str(0)
        txtString= StrConv(str,vbUnicode)
    End Sub
       之后,按F5运行程序,在多行文本框中随便键入几行文字,然后按下[确定]按钮,出现如图画面,说明程序正确统计出了总行数和第3行(从第0行开始)的文字。
      

  4.   

    http://www.csdn.net/expert/topic/539/539223.xml?temp=.5754053
    主  题:  哪位高手能告诉我sendmessage的详细用法? 
    作  者:  jun_01 (心灵鸡肋)  
    等  级:    
    信 誉 值:  100 
    所属论坛:  Visual  Basic 
    问题点数:  20 
    回复次数:  14 
    发表时间:  2002-2-23  21:06:33