窗口消息发送问题
问题描述:
我从Form1中给Form2发送消息(在工程文件中,将Form2的创建函数已屏蔽掉),希望所有继承于Form2的窗口都能同时接受到这个发送消息并做及时处理。
我的做法:
使用FindWindow()函数获取Form2的句柄(此窗体未构造,是否获取的句柄不能反映真实值呢?),然后向Form2发送消息,未发送成功。
求助:
请各位能提供点思路,或许我这条路走不通,当然也和没有尝试成功有关系,但不知道该怎么去实现我想要的方法,请指点明路,谢谢。
[解决办法]
继承Form2的应该当然可以收到此消息,关键是发送消息是的句柄指定正确就可以了,句柄是具体窗体的句柄
[解决办法]
不用指定也不用添加
比如说 你有3个Form Form1 Form2 Form3 。。。。。
其中Form3等等是继承的Form2
那你在Form2的构造函数中把代码写好
如果在Form1中直接去写TForm3 *f = new TForm3(this); f->ShowModal();........肯定会去触发的
[解决办法]
在8楼的回复内容:
使用全局对象 Screen 枚举App的从TForm2继承的类的实例就可以了。
狗日的csdn 管理员。
[解决办法]
说明一下 当你生成的时候 你的Form1 Form2都存在,只你看到的是你显示出来的
例如 Form2->Show() 就显示窗口2,Form2->Hide()就是隐藏窗口2,所以你可以直接传值过去
如果是new出来的 例如TForm2 newForm = new TForm2();newForm->Show();你也可以传值过去,但是需要传值回来,那么该值是全局的才可以,和指针一样,你函数里分配内存,出了函数该指针无效
[解决办法]
12楼请淡定,你看不到某个回复,这是CSDN目前难以解决的BUG。多生成几次帖子就ok了。