请教: 在自定义消息中,为什么不能用WM_USER代替WM_APP呢?

解决方案 »

  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标志用户可自定义的消息资源范围,WM_APP标志被系统使用的消息资源范围。
      

  3.   

    约定俗成的一种规则。
    WM_USER through 0x7FFF: 仅在自己预定义的窗口内部使用;
    WM_APP through 0xBFFF: 在应用程序的其他地方均可使用。如果程序的所有窗口和所有控件完全由你一个人实现,你完全可以不遵守这一规则。
    但若有其他人写的代码或加载了外来的控件,如果你不遵守这一规则,发生冲突的概率会明显加大,可能会出现意想不到的结果。
      

  4.   

    WM_USER 是为所有实现窗口类的人保留的
    WM_USER 到 0x7FFF 是为私有窗口类保留的。你可以将这个范围 认为是在特定的窗体类中有意义的专用消息。  想要定义其自己消息的应用程序应该使用 WM_APP。WM_APP 是确保不会与系统(WM_CREATE 等等)或类/特定控件消息如 DM_GETDEFID 相冲突的。Windows 定义 的 WM_APP 如下:#if (WINVER >= 0x0400)
    #define WM_APP 0x8000
    #endif