WM_USER 怎么用??请达人帮忙!!!!!!

时间:2021-11-23 17:04:17
WM_USER 消息究竟怎么用??
如:
#define WM_USER_SETSCROLLS (WM_USER+1)
#define WM_USER_DELETEDIB  (WM_USER+2)
#define WM_USER_DELETEPAL  (WM_USER+3)
#define WM_USER_CREATEPAL  (WM_USER+4)

到什么时候Windows知道发送这些消息,
windows怎么知道发送哪个消息?

12 个解决方案

#1


要用ON_MESSAGE来映射消息到消息处理函数的……

譬如ON_MESSAGE(WM_USER_DELETEDIB, YOURPROCFUNC)

#2


SendMessage(hwnd, WM_USER_SETSCROLLS, 0, 0);就能发消息了hwnd指向接收窗口.

#3


仅仅发送消息没用,找不到你定义的处理函数,消息发出去也不会有你想要的结果……

#4


WM_USER只是MFC中定义的一个宏,如果你要自定义消息,最好使消息ID大于WM_USER,MS保证你的消息不会和系统定义的消息冲突

#5


消息映射

#6


(WM_USER+大于100的数)100以内有可能被Windows调用

一般是自行SendMessage/PostMessage,然后自己处理

#7


#define WM_USER       0x0400

#8


就是自定义的消息和处理函数。

#9


学习!

#10


顶一下,给点分,在cpp中写消息映射宏,像这样ON_MESSAGE(WM_USER_DELETEDIB, YOURPROCFUNC),在BEGAN和END之间,但在AFX括号对之外;在h中,写函数原型说明,像这样afx_msg void OnDelete();第三部分,就是在cpp中把你的实现函数写进去,void C****::OnDelete(){code},好了吧!调用的时候,你可以像他们上面说的,给窗口发送消息sendmessage,poostmessage,还有就是在某个按钮函数下调用void C**Dlg::OnButton1(){ OnDelete();}

#11


ON_MESSAGE添加消息到你的处理函数的映射

#12


MSDN上说最好是+100,有一部分新型控间也会用到WM_USER+1这样的消息。
#define WM_USER_SETSCROLLS (WM_USER+101)

#1


要用ON_MESSAGE来映射消息到消息处理函数的……

譬如ON_MESSAGE(WM_USER_DELETEDIB, YOURPROCFUNC)

#2


SendMessage(hwnd, WM_USER_SETSCROLLS, 0, 0);就能发消息了hwnd指向接收窗口.

#3


仅仅发送消息没用,找不到你定义的处理函数,消息发出去也不会有你想要的结果……

#4


WM_USER只是MFC中定义的一个宏,如果你要自定义消息,最好使消息ID大于WM_USER,MS保证你的消息不会和系统定义的消息冲突

#5


消息映射

#6


(WM_USER+大于100的数)100以内有可能被Windows调用

一般是自行SendMessage/PostMessage,然后自己处理

#7


#define WM_USER       0x0400

#8


就是自定义的消息和处理函数。

#9


学习!

#10


顶一下,给点分,在cpp中写消息映射宏,像这样ON_MESSAGE(WM_USER_DELETEDIB, YOURPROCFUNC),在BEGAN和END之间,但在AFX括号对之外;在h中,写函数原型说明,像这样afx_msg void OnDelete();第三部分,就是在cpp中把你的实现函数写进去,void C****::OnDelete(){code},好了吧!调用的时候,你可以像他们上面说的,给窗口发送消息sendmessage,poostmessage,还有就是在某个按钮函数下调用void C**Dlg::OnButton1(){ OnDelete();}

#11


ON_MESSAGE添加消息到你的处理函数的映射

#12


MSDN上说最好是+100,有一部分新型控间也会用到WM_USER+1这样的消息。
#define WM_USER_SETSCROLLS (WM_USER+101)