ǿSendMessage 
Windows APIӦóӿڣWindowsϵΪ򿪷ԱṩĻǿġ⡱Укܶ༫SendMessage֮һĹܷǳḻʹ̹ܶVisual BasicΪϼӽܸúĹܡ
һSendMeaasge
   ˼壬SendMessageĹǡϢһϢ͵ָ󣨲ϵͳڻؼȣϣԲضĶ޸Ķ۵ȣ
SendMessageVBеĺ˵£
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (Byval hwnd As Long, Byval wMsg As Long,Byval wParam As Long,lParam As Any) As Long
ĸԱĺ˵£
hWndľϣϢ͸ĸ󣬾ͰѸöľΪʵδͣVBпԼ򵥵á.hWndĳľText1.hWndForm1.hWndֱԵõText1Form1ľ
wMsg͵ϢݾͲͬĶ󣬽ͬϢΪʵδͣԲԤڵĶ
wParamlParamӵϢϢǿѡĲṩwMsgϢϢͬwMsgʹе012ҪĸӲʵθΪNULLVBиΪ0
ڼ˽SendMessageĸʽ͹ܺԼ
SendMessageʹʵ
1  TextBoxеĿٴڴTextBoxʱǾ¼
   ϣ˽TextBoxĿǰж֡
   ٷصNе֡
   VBʵֵĻҪд̵Ĵ룬Ҫ˳ҵİ취ɣ˴ִЧҲܵ͡ʹSendMessageԴٴȵִЧʡ
   SendMessageķǳ򵥣ÿֻ򵥵طһϢTextBoxɣϢֱΪEM_GETLINECOUNTEM_GETLINEͷֵ
   һ򵥵ʵʾܣ
½̣Form1TextBoxƷֱΪText1txtLineCountTxtStringText1Multi
LineΪTrueǩһťΪһģMoudle1д
SendMessageԴVBġAPIиƣ Ϣ Ϣֵ wParam lParam ֵ 
EM_GETLINECOUNT &HBA δ δ  
EM_GETLINE &HC4 Ҫҵк ֽڴ ֽڴֽ 

Declare 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е֡
㲹˵ڵSendMessageȡNַʱlParamҪ˵Ϊֽ飬ڵɺٽֽתΪַ⣬ǰlParamǰָֽŵ󳤶ȣеһֽΪλڶֽΪλλstr(1)1˵256ַ
2  »Ͽ
   һ£Ϊ»ϿбҪü̻вʱϣеĳʱԶбһЩʾУΪʵĿģҲֻнSendMessageǷһCB_SHOWDROPDOWN(&H14F)ϢϿ
   ڷCB_SHOWDROPDOWNϢʱwParamб=TrueʱбFalseʱlParamãΪ0
   Ϊ˵ʹ÷ṩ򵥵ĳƬΡڴģ
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long,ByVal wMsg As LongByVal wParam As Long,lParam As Any) As Long
Const CB_SHOWDROPDOWN=&H14F
   ĳҪϿCombolбʱдµ䣺
SendMessage Combol.hwnd,CB_SHOWDROPDOWN,True,0
   ҪϿCombolбʱд䣺
SendMessage Combol.hwnd,CB_SHOWDROPDOWNN,False,0
3  бвƥĿ
   Win95İϵͳһ㶼һҳҳһıһб򣬵ûıʱбᶯ̬ʾıƥĿΪûṩķ㡣ЧӦóİϵͳкʵֻ֣ҪWin95ϵͳͿʵ֣ӦóطʵԾһ˼ˡ
   ʹSendMessageʵǳ򵥣ֻһ㹻ˣǾıChange¼ибһLB_FINDSTRING(&H18FϢϢббвƥĿ
   ڷLB_FINDSTRINGϢʱwParamбһĿ濪ʼңһ¸òɶΪ-1ʾList1(0)һʼѭңlParam򴫽ֵַݣ
   Ĵл4ϲһʾ
4  ΪListBoxˮƽ
   VBУбؼṩֱûˮƽĳЩĿıȽϳʱбȲֵı޷ʾˣбҪΪListBoxһˮƽ
   Ϊˮƽֻ跢һLB_SETHORIZONTALEXTENT(&H194)Ϣб򼴿ɡϢʱwParamΪĳȣΪλͨó׼ȷĳȣҲһıȵ֣籾250lParamá34ϲһĴл
Declare 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 LB_FINDSTRING=&H18F
Public Const LB_SETHORIZONTALEXTENT=&H194
Private Sub Form_Load()
List1.AddItem ""
List1.AddItem "Ϸ"
List1.AddItem "ӻ"
List1.AddItem "̨"
List1.AddItem ""
List1.AddItem "Ϸ"
'һΪбˮƽ
SendMessage List1.hwnd,LB_SETHORIZONTALEXTENT,250,0
End Sub
Private Sub Text1_Change()
'ע⣡lParamַʱByVal
List1.ListIndex  SendMessage(List1.hwnd,LB_FINDSTRING,-1,ByVal Text1.Text)
End Sub
ͨ漸ӣѾSendMessageǿ˳˽⡣ʵøúǻɸõıԶʵֱ༭еUndoܡӦóĴƲ˵ȵȣȤĶйWindows APIϡ
ĳVisual Basic 5.0ҵдPwin95
 
