现有主窗体Main,
DLL包中有Form1,Form2Main运行后半入DLL包,
现在我想Form2想发消息到Form1,但是收不到消息,发给主窗体Main可以收到
代码如下:
发Form1,这失败
H := FindWindow('Tform1',Nil);,,得到H=0
postMessage(H,MessageIDNo,1,1)发Main,这正常
H := FindWindow('Tmain',Nil);
postMessage(H,MessageIDNo,1,1)
DLL包中有Form1,Form2Main运行后半入DLL包,
现在我想Form2想发消息到Form1,但是收不到消息,发给主窗体Main可以收到
代码如下:
发Form1,这失败
H := FindWindow('Tform1',Nil);,,得到H=0
postMessage(H,MessageIDNo,1,1)发Main,这正常
H := FindWindow('Tmain',Nil);
postMessage(H,MessageIDNo,1,1)
当然无法响应了!
可能Tform1根本没有创建对应的实例!
不过Tform1和Tform2同在一个dll下互相引用单元直接调用即可!
不明白为什么一定要发消息!
呵呵!
至少先把句柄找到再说吧
我表达错了,
应该DLL2,发消息到DDL1里在Form1
主窗口当然能找到句柄,除非程序关闭了才找不到。
跟dll通讯用其他方式,如内存映射、管道
然后再根据需要显示出来!
应该就可以互相发送消息了!
呵呵!为啥不从特定的基类继承下来
或者实现相应的接口
这样调用起来不是更方便!
当然发消息也可以!
呵呵!