MDI窗体的消息传递(50分)

  • 主题发起人 主题发起人 喜洋洋
  • 开始时间 开始时间

喜洋洋

Unregistered / Unconfirmed
GUEST, unregistred user!
问题:一个MDI主窗体,有许多个MDI子窗体,每个子窗体关闭时要向主窗体发一个消息,<br>主窗体接受不同子窗体发来的消息,并做不同处理。<br>&nbsp; &nbsp; 我现在做的是:子窗体用PostMessage发一个用户消息,主窗体编写一个相应的消息<br>处理函数(也即:有几类消息,主窗体中就要有几个消息处理函数)。<br>&nbsp; &nbsp; 现希望主程序中只有一个消息处理函数,然后CASE OF 不同的消息,做不同处理。???<br>曾经试着 OVERRIDE WndProc函数,但不成功!
 
你难道不能在MDI子窗口的CLOSEQUERY中编码??
 
设置PostMessage的 &nbsp;wParam 和 lParam 的值<br>在消息处理函数里根据以上两值来 case of
 
本来就是这样的嘛,<br>
 
在ChildForm的CloseQuery事件中实现...
 
消息类型首先全局定义了吗?
 
能不能贴出关键代码?
 
OVERRIDE WndProc绝对可行呀,我的一个系统中,大概有20多个MDI子窗口,我的做法<br>是这样的,创建子窗口的时候就记录下子窗口的HANDLE和类型,保存在全局范围中.<br>子窗口和父窗口的通讯就是用SENDMESSAGE来实现,一般WPARAM中放消息附加数据,<br>LPARAM放自己的HANDLE,这样父窗体可以针对HANDLE找到对应的窗体类型,进行<br>相应的处理.<br>这个东西其实挺简单的,好好看看代码,绝对可以实现.
 
多人接受答案了。
 
后退
顶部