WM_USER 与 WM_APP的区别。。。

首先看下MSDN的文章
RangeDescription
From 0 through WM_USER –1Messages reserved for use by the system.
From WM_USER through 0x7FFFInteger messages for use by private window classes.
WM_APP through 0xBFFFMessages available for use by applications.
0xC000 through 0xFFFFString messages for use by applications.
Greater than 0xFFFFReserved by the system for future use.
看过之后是不是大概明白了。如果不还不明白的话。

#define WM_GET (WM_USER+112) 和 #define WM_GET (WM_APP+112)除了值不同外,有区别吗?
(1)WM_USER through 0x7FFF Integer messages for use by private window classes. WM_APP through 0xBFFF Messages available for use by applications.
(2)默认规则是以WM_USER+X(WM_USER--0x7fff)用于窗口级的消息,WM_APP+X(WM_APP--0xbfff)用于进程级的消息.  
(3)我的理解:第一种定义用于进程内消息,第二种定义用于进程间消息
(4)约定俗成的一种规则。
 WM_USER through 0x7FFF: 仅在自己预定义的窗口内部使用;
 WM_APP through 0xBFFF: 在应用程序的其他地方均可使用
例一:
如果程序的所有窗口和所有控件完全由你一个人实现,你完全可以不遵守这一规则。
但若有其他人写的代码或加载了外来的控件,如果你不遵守这一规则,发生冲突的概率会明显加大,可能会出现意想不到的结果。
例二:
这样的:我的COM里需要定义一个通知消息,来通知应用程序为它填充缓冲,这个COM是一个进程内的COM,当我#define   WM_GET   (WM_USER+112)   时,通过测试30次,可能要失败1次,用#define   WM_GET   (WM_APP+112)时,30次全成功,但现在不敢肯定是它引起的,有可能其他地方还会有影响。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值