Message Basic

条款一 Windows消息范围及意义
0---WM_USER-1     Messages reserved for use by the system              系统预留使用的消息
WM_USER---0x7FFF   Integer messages for use by private window classes   被私有窗口类使用的消息
WM_APP---0xBFFF     Messages available for use by applications   被应用程序使用的消息
0xC000---0xFFFF      String messages for use by applications      被应用程序使用的字符串消息
>0xFFFF                   Reserved by the system                             系统预留

#define WM_USER 0x0400
#define WM_APP 0x8000

条款二 WM_USER与WM_APP的区别
WM_USER --- 0x7FFF: 仅在自己预定义的窗口内部使用
WM_APP --- 0xBFFF: 在应用程序的其他地方均可使用
注意:这只是一种约定俗成的规则,约定只是best practice,并不是说你不这么做就一定会出问题.
如果程序的所有窗口和所有控件完全由你一个人实现,你完全可以不遵守这一规则.
但若有其他人写的代码或加载了外来的控件,如果你不遵守这一规则,发生冲突的概率会明显加大,可能会出现意想不到的结果.

条款三 RegisterWindowMessage
The RegisterWindowMessage function defines a new window message that is guaranteed to be unique throughout the system.
The message value can be used when sending or posting messages.
UINT RegisterWindowMessage(LPCTSTR lpString)
The RegisterWindowMessage function is typically used to register messages for communicating between two
cooperating applications.
If two different applications register the same message string, the applications return the same message value.
The message remains registered until the session ends.
Only use RegisterWindowMessage when more than one application must process the same message.
If the message is successfully registered,
the return value is a message identifier in the range 0xC000 through 0xFFFF.

 

 

posted on 2012-05-18 21:40  wangyao1052  阅读(541)  评论(0编辑  收藏  举报

导航