SendMessage 一个程序向另外一个程序发消息的问题???(20分)

  • 主题发起人 主题发起人 ywy32
  • 开始时间 开始时间
Y

ywy32

Unregistered / Unconfirmed
GUEST, unregistred user!
一个程序向另一个程序发消息<br>当接收的程序主界面为frmNormal时,没有问题,可以接收到<br>但是,当接收程序主界面为主从界面时,就接收不到,不知道怎么回事!
 
注释:<br>发送的程序是<br>hwnd := FindWindow(nil,'接收主界面的名');<br>sendMessage(hwnd,WM_MESSAGE,0,Longint(PChar(@sData)));
 
如果用主从界面的话,发送程序捕作到接收程序的句柄了,但接收不到消息
 
接收程序是frmMDIForm与frmMDIChild结合的界面
 
自己ding一下
 
在98后,Windows的窗口HWnd会随hide,top_most等属性变化,<br>方法是每次得到新的HWnd即可!
 
TO:wql<br>不是句柄的问题,我每次都得到新的句柄,问题是接收界面换成主从界面就不行!
 
还是没有人遇到这个问题吗?
 
每个窗体都有自己的消息循环,自己的句柄. 你查找的句柄是主程序句柄,默认为主界面的句柄,所以你消息发给主界面接受肯定是正确的.你要发给子界面,你就要得到子界面的句柄.
 
To:babyvs<br>你说的方法,我都做过,我取的就是主界面的句柄,但是不能接受消息。我还发现一个奇怪的现象。就是子界面不最大化的话,就可以接收到。但是只要最大化,就接收不到消息了!<br>不知道,有没有遇到这个问题!
 
其实在WINDOWS里,每个控件和窗口都有一个句柄,都可以看做一个窗口,<br>可以先找父类,再查找子类的句柄<br>你这个问题其实要找的应该就是子窗口的句柄,<br>再找子窗口里的各个控件的句柄来进行操作<br>完全扔开主窗口<br>看看这个可能对你有启发<br>http://www.delphibbs.com/delphibbs/dispq.asp?lid=3928297
 
可能大家没有试一下!试一下,就知道里面的问题!<br>我还发现一个奇怪的现象。就是子界面不最大化的话,就可以接收到。但是只要最大化,就接收不到消息了!<br>希望大家试一下!很有意思!
 
把hwnd := FindWindow(nil,'接收主界面的名')这个换成<br>hwnd := FindWindow(类名,nil)试试!
 
To:zhtx<br>&nbsp; 没有用!
 
所以<br>在98后,Windows的窗口HWnd会随hide,top_most等属性变化,<br>*****方法是每次得到新的HWnd即可!
 
后退
顶部