#define MENU 6000 //方式1#define MENU WM_USER+6000 //方式2int OnID= nID-MENU; //方式1和2 得到的结果怎么会不一样?

解决方案 »

  1.   

    defined in winuser.h/*
     * NOTE: All Message Numbers below 0x0400 are RESERVED.
     *
     * Private Window Messages Start Here:
     */
    #define WM_USER                         0x0400
      

  2.   

    在你定义的宏上要加括号。
    应该这样:
    #define MENU (WM_USER+6000)按照你原来的定义,宏展开后就成了int OnID=nID-WM_USER+6000;
    按照新的定义,宏展开为:int OnID=nID-(WM_USER+6000); 
    所以会出问题,就这样。
      

  3.   

    The WM_USER constant is used by applications to help define private messages, usually of the form WM_USER+X, where X is an integer value. #define WM_USER       0x0400