如何自定义消息

在一个单文挡工程中,弹出一个模态对话框,请问,如何在该对话框类中定义一个消息,将该消息发送到VIEW类中以关闭定时器

作者: golfwk597   发布时间: 2011-06-16

应该在view里自定义消息,对话框获取view的指针或句柄,发送自定义消息

作者: ouyh12345   发布时间: 2011-06-16

WM_USER开始都可以用

作者: kyotrue   发布时间: 2011-06-16

我在Dlg中需要sendmessage,比如我自定义的消息为WM_KILLTIMER.在Dlg中

当我需要关闭定时器时
sendmessage(hWnd,WM_KILLTIMER,0,0)

我在VIEW类中中定义消息响应函数为 asf_msg void OnKillTimer()

关联 ON_MESSAGE(WM_KILLTIMER OnKilltimer)

这样的话,为什么错误为C2660 sendmessage变量的参数错误

还有我是在主界面中定义消息的,那么在Dlg的sendmessage能用到WM_KILLTIMER吗?求解释!谢谢

作者: golfwk597   发布时间: 2011-06-16

1.在stdafx.h中定义一个消息,比如:
#define WM_STOP_TIMER WM_USER + 100

2.在你的 view类的头文件中添加上相应函数的声明,比如:
afx_msg LRESULT OnStopTimer(WPARAM wParam,LPARAM lParam);

3.在你的view类的实现文件中(cpp文件)添加上消息响应宏,比如:
ON_MESSAGE(WM_STOP_TIMER,OnStopTimer)
注意:要在规定的地方定义,看看其他的定义在哪,就定义在那

4.添加响应函数实现,比如:
LRESULT CXXXView::OnStopTimer(WPARAM wParam,LPARAM lParam)
{
  //你的处理代码
}
5.在你的对话框中,调用SendMessage/PostMessage向View中发消息,比如:
pViewWnd->SendMessage(WM_STOP_TIMER,0,0);

作者: shenyi0106   发布时间: 2011-06-16

定义消息 WM_USER+N N>=1
然后 定义处理函数 到时候知道具体的句柄 POSTMESSAGE就行了

作者: sunyong731   发布时间: 2011-06-16

恩。sendmessage是需要如4楼说的pViewWnd->SendMessage(WM_STOP_TIMER,0,0);

而不是SendMessage(hWnd,WM_STOP_TIMER,0,0)吗?我是查百度百科的- -

作者: golfwk597   发布时间: 2011-06-16

一个是API函数,一个是CWnd类封装的函数,一样的

作者: shenyi0106   发布时间: 2011-06-16