vb 怎么向窗体发送自定义消息

比如form1向另外一个进程的form2窗体发送一个消息内容"你好",然后在form2中显示,怎么实现
不用winsock控件之类的

两个进程都是你自己编写的吗?如果是,那就比较简单,直接用DDE连接就可以了。
如果那个窗体不是你自己编的进程,那就只能用API函数了,比如用sendmessage,这需要学习WINDOWS编程,以便学习那个进程的控件可以接受哪些消息,还要受到那个进程是否用采WINDOWS标准控件的限制。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-07
VB.net 比较麻烦,需要两个窗口都声明定义一下frm。

VB很简单,语法是form2.text1.text依次类推。来自:求助得到的回答
第1个回答  2013-03-07
Form2的窗口句柄在Windows的消息机制
第一个form1的过程,然后Form2的进程的pid打开句柄的进程,然后在Form2的过程中申请一个空间,该字符串是写在这个空间里,将消息发送到Form2的,只是应用程序Form2的过程中,地址空间的首地址,通过发送消息,发送FORM2,
然后Form2的,以自己的窗口过程,窗口过程指向自己写的很好的功能来处理消息处理自己定义的消息类型,然后在功能上,访问给我发信息,得到的第一个地址,阅读本应用空间字符串。然后,释放内存空间。

查找窗口
openprocess
CloseHandle的
PostMessage的
GetWindowThreadProcessId
WriteProcessMemory
readProcessMemory
在VirtualAlloc使用的API列表
VirtualFree
SetWindowLong函数
callwindowproc
第2个回答  2013-03-07
使用windows消息机制
首先form1的进程找到form2的窗口句柄,然后得到form2的进程pid,打开该进程的句柄,然后在form2进程中申请一个空间,把字符串写入这个空间中,在给form2发送一个消息,把刚在form2进程中申请的地址空间的首地址通过发送消息发送给form2,
然后form2 修改自己的窗口过程,把窗口过程指向自己编写好的处理消息的函数,然后在该函数中处理自己定义消息类型,获取到发过来的消息,得到首地址,读取这个申请空间的字符串。然后释放该内存空间。
要使用的 api 列表
findwindow
openprocess
closehandle
postmessage
GetWindowThreadProcessId
WriteProcessMemory
readProcessMemory
VirtualAlloc
VirtualFree
setwindowlong
callwindowproc追问

谢了,用一个TextBox和sendmessage已经解决了

追答

发送 SetText消息 来修改窗口内容也行。

本回答被提问者采纳
第3个回答  2013-03-07
查api函数。
相似回答