首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

不执行自定义消息(三层对话框的结构),该怎么解决

2012-03-21 
不执行自定义消息(三层对话框的结构)我的程序不执行自定义消息。我的程序是对话框结构的,主对话框pTestDlg

不执行自定义消息(三层对话框的结构)
我的程序不执行自定义消息。
  我的程序是对话框结构的,主对话框pTestDlg调用第二个对话框DlgReceiver,第二个对话框DlgReceiver调用第三个对话框DlgSender,第三个对话框DlgSender是消息发送者,第二个对话框DlgReceiver是消息接收者。
  我调试后发现,应该是消息发送者中的这句话有问题:
  AfxGetApp()->GetMainWnd()->SendMessage(WM_SETOK, (WPARAM)&tSetParam,0);/*发现消息, 传递参数*/
  其中WM_SETOK是我的自定义消息。
  问题应该在于GetMainWnd(),这个应该是把消息发送到主对话框pTestDlg中了,而我想把消息发送到DlgReceiver。只是应该怎么改,还请各位指教一下,不胜感激!


[解决办法]
在第三个对话框中,

C/C++ code
::SendMessage (GetParent()->m_hWnd, WM_SETOK, (WPARAM)&tSetParam,0);
[解决办法]
楼上的正解,
GetParent()->SendMessage (,WM_SETOK, (WPARAM)&tSetParam,0);

用GetParent获取第三个窗口的父窗口,也就是第二个对话框,然后对其发送消息
[解决办法]
你的先得到DlgReceiver的窗口句柄
[解决办法]
探讨
还有,现在的问题是虽然能执行自定义消息了,却不能返回第二个对话框了,我的自定义消息函数为OnSetOk:
LRESULT CDlgReceiver::OnSetOk(WPARAM wParam, LPARAM lParam)
{
int i, res = 0;
pSetParam = (SETPARAM*)wParam; //取得所选参数
this->SetActiveWindow();……

热点排行