vb中sendmessage函数的用法

2025-02-24 17:19:27
推荐回答(2个)
回答1:

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 Const WM_SETTEXT = &HC
Private Sub Command1_Click()
SendMessage Text1.hwnd, WM_SETTEXT, 0, ByVal "hello"
End Sub

回答2:

  sendmessage函数  
  函数功能:该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。
  函数原型:LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam);
  
  参数:
  hWnd:其窗口程序将接收消息的窗口的句柄。如果此参数为HWND_BROADCAST,则消息将被发送到系统中所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口,但消息不被发送到子窗口。
  Msg:指定被发送的消息。
  wParam:指定附加的消息指定信息。
  IParam:指定附加的消息指定信息。
  返回值:返回值指定消息处理的结果,依赖于所发送的消息。
  备注:需要用HWND_BROADCAST通信的应用程序应当使用函数RegisterWindowMessage来为应用程序间的通信取得一个唯一的消息。
  消息分三类:标准消息,命令消息,通告消息.
  标准消息通过解析Msg直接发送,命令消息通过解析标准消息的Msg获得WM_COMMAND,再解析wParam从而获得命令ID号消息.
  如: MFC类里面封装了窗口句柄我们可以这样用函数,SendMessage(WM_COMMAND,ID_NAME,0);