如题~~~~
为什么这个高16位的数永远都是负数?

解决方案 »

  1.   

    http://msdn2.microsoft.com/en-us/library/ms646352.aspx
      

  2.   

    刚刚粗略看了一下这文章
    据微软说的wParam高位代表菜单样式(或者说状态)
    但是我看了一下那些常量,没有一个是负数的
    而我得出来的高位却全是负数~
    (我是这样得出的:(wParam And &HFFFF0000) \ &H10000),不知道有没有错)有懂英文的帮我翻译一下那文章,谢谢~~~~
      

  3.   

    其实我主要的目的呢,是想知道我现在鼠标指着的到底是哪个子菜单~一时不知道怎么解释好!我在一个资源DLL里制作了一个菜单,称为hMenu
    此hMenu里有3个子菜单,分别称为hSubMenu1、hSubMenu2、hSubMenu3
    而每个子菜单里起码有5~10个项目
    其中hSubMenu3里,我是用来显示当前的子窗口列表的(因为我做的是MDI程序)
    而hSubMenu3里我由动态增加了一个Popup类型的子项,称为hPopupMenu
    这个hPopupMenu里的菜单项目会根据MDI里的子窗口数量相应变化
    现在问题来了,因为我使用了MenuHelp函数,在指向菜单的时候状态栏会显示相应的帮助信息而帮助信息主要是靠WM_MENUSELECT中的wParam参数来分辨当前的菜单项目的
    但是我的hPopupMenu中的子项目是动态生出来的,其中的MenuID与其他项目ID有重复
    所以当鼠标指着hPopupmenu中的项目时,却会显示hSubMenu1或者hSubMenu2里面的子项目的帮助信息
    所以我想靠WM_MENUSELECT中的wParam参数,看看能不能分辨得出我当前鼠标指着的是hSubMenu呢,还是hPopupMenu里的子项
    但wParam除了低位显示MenuID外,高位却显示负数,不明所以~~~~~~~~~~~
      

  4.   

    貌似可以用一个叫trackmenu(???拼写忘记了)之类的api跟踪菜单的…………我有代码但没带,有空再发给楼主~~~
      

  5.   

    http://tzwsoho.ys168.com/
    代码发在了我的网盘“跟踪菜单焦点.rar”,用子类化窗口实现的,不知道是楼主的要求没?