问一个关于Tab Ctrl属性页自定义消息问题

linuxlan 2009-07-12 11:22:59
A的Dialog的Tab中加入B窗口然后在B窗口中弹出C窗口

然后C窗口像B窗口发送自定义消息

B窗口:
#define WM_TEST WM_USER+1000
afx_msg void OnEditHourS(WPARAM as);
ON_MESSAGE(WM_TEST,OnEditHourS)

void B_Dialog::OnEditHourS(WPARAM as)
{
CString a;
a.Format("%d",as);
MessageBox(a);
}

C窗口:
#define WM_TEST WM_USER+1000
sa->SendMessage(WM_TEST,2);
CCashierCustomerCostMain_Dialog *sa;
sa=(B_Dialog *)AfxGetApp()->GetMainWnd();
sa->SendMessage(WM_TEST,2);


现在的问题是C窗口发送自定义消息的时候B窗口没有任何反应!!!请各位指教!~~
...全文
87 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
spring203 2009-07-13
  • 打赏
  • 举报
回复
不明白楼主为什么用AfxGetApp()->GetMainWnd()?这是个主窗口A发消息呀, 不是给B发消息呀, 要想办法在C中得到B的句柄,当然最好是创建C时保存B的句柄!
你妹的特盗不 2009-07-13
  • 打赏
  • 举报
回复
c的父窗口是b窗口,那要在c窗口发消息给b窗口,应该这样发,
我是成功了的
在c窗口中使用以下代码
::PostMessage(this->GetParent()->GetSafeHwnd(),WM_TEST,0,0);


快乐鹦鹉 2009-07-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 linuxlan 的回复:]
他是C对话框的父窗口啊!
[/Quote]
父窗口又怎么了?
AfxGetApp()->GetMainWnd(); 是用来获取基于对话框工程的主对话框对象指针的。如果你的B窗口不是这个主对话框,自然就不管用了。
linuxlan 2009-07-13
  • 打赏
  • 举报
回复
他是C对话框的父窗口啊!
快乐鹦鹉 2009-07-13
  • 打赏
  • 举报
回复
sa=(B_Dialog *)AfxGetApp()->GetMainWnd();
==你确定这个B_Dialog是你的基于对话框工程的主对话框???
Dave888Zhou 2009-07-12
  • 打赏
  • 举报
回复
帮顶!!!

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧